收藏
回答

setData异步造成的问题?

我在onLoad里面使用setData保存路由参数,在onShow里面可能使用this.data获取不到在onLoad里面设置的数据,setData是异步的,谁有好用的方法吗

回答关注问题邀请回答
收藏

4 个回答

  • 卡卡
    卡卡
    2021-07-08

    你的参数为什么要经过data层了,直接放在this变量上就行啊。例如


    onload(){

    this.params1 = 111;

    this.params2 = 222;

    },

    onshow(){

    console.log(this.param1)

    }

    如果有帮忙,麻烦点有用,谢谢

    2021-07-08
    有用 1
    回复
  • 陈生
    陈生
    2021-07-08

    如果是这样,为什么不考虑使用缓存,根据缓存是否存在走逻辑

    2021-07-08
    有用
    回复 5
    • 周祥
      周祥
      2021-07-08
      storage麻烦啊,而且这样需要参数的页面多了起来,storage里面的东西多了也不好
      2021-07-08
      回复
    • 陈生
      陈生
      2021-07-09回复周祥
      你这跟setData异步其实没关系,因为页面方法是先执行onShow再执行onLoad;你可以看看是否可以将你的逻辑放到onLoad中
      2021-07-09
      回复
    • 周祥
      周祥
      2021-07-09回复陈生
      额,页面是先执行onLoad,在执行onShow,看看文档吧
      2021-07-09
      回复
    • 陈生
      陈生
      2021-07-12回复周祥
      不好意思,没注意。那更好处理了,你在onLoad函数加个async,调用getData函数时加个await
      2021-07-12
      回复
    • 周祥
      周祥
      2021-07-12
      onShow不会等待,这个方法不适用
      2021-07-12
      回复
  • 周祥
    周祥
    2021-07-08

    使用wx.nextTick能解决吗

    2021-07-08
    有用
    回复
  • 青寒
    青寒
    2021-07-08

    that = this?

    2021-07-08
    有用
    回复 1
    • 周祥
      周祥
      2021-07-08
      没明白啥意思
      2021-07-08
      回复
登录 后发表内容