收藏
回答

小程序setData失效

框架类型 问题类型 终端类型 微信版本 基础库版本
小程序 Bug 工具 7.0.4 2.7.0

做了一个socket来异步调用,第一次进来怎么调用都会响应,第二次打开页面在onShow里面调用没问题,收到socket消息调用就没响应了,数据怎么都设置不了,但是设置一个按钮点击调用就没问题,求大神解答




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

5 个回答

  • 王墨炱
    王墨炱
    2020-06-04

    这里不是this指向的问题,如果是this指向你在第一次进来就会报错。实际上这里的问题是在页面销毁时没有调用wx.closeSocket导致还在使用之前的socket对象,并且由于闭包或者其他的原因你这里setData并不是改变的当前页面的数据,这里你可以使用console.log与微信自带的调试工具去对比appData

    以上bug出现原理为个人猜测,下面附上我的解决方法:

    在unload生命周期中添加:

    onUnload(){
       wx.closeSocket()
    }
    
    
    2020-06-04
    有用
    回复
  • 刘平
    刘平
    2020-04-10

    大哥解决了吗 ,求解决方法

    2020-04-10
    有用
    回复
  • 老男孩
    老男孩
    2019-06-11

    是第二次进来引用的还是第一次进来的that吗?

    2019-06-11
    有用
    回复
  • 香蕉不是笨啦啦
    香蕉不是笨啦啦
    2019-06-06

    截图也全一点,鬼知道你that指向谁

    2019-06-06
    有用
    回复 1
    • 老男孩
      老男孩
      2019-06-11


      2019-06-11
      回复
  • 让让😴
    让让😴
    2019-06-06

    that 哪里来的

    2019-06-06
    有用
    回复 1
    • 老男孩
      老男孩
      2019-06-11


      2019-06-11
      回复
登录 后发表内容