收藏
回答

this.setData一定能实现吗?

程序中有如下语句:

.....

this.setData({imD:"true"},()=>{

  if(this.data.imD!='true')

    wx.showModal({ title: '提醒!',content: '程序37未正确执行!', showCancel: false})

 })

......

问:理论上,提醒语句有显示出来的可能吗? 实践中确实发现,偶尔该提醒语句会出现,但事后检查imD的内容并未错(是“true”),为什么提醒语句会显示?

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

1 个回答

  • 迪克
    迪克
    2020-12-12

    ()=>{

      if(this.data.imD!='true')

        wx.showModal({ title: '提醒!',content: '程序37未正确执行!', showCancel: false})

     }

    函数里的this指向有问题 在外层设置 let that = this

    2020-12-12
    有用
    回复 5
    • nono
      nono
      发表于移动端
      2020-12-12
      明白你的意思,但我将this 改成that之后呢?
      2020-12-12
      回复
    • 迪克
      迪克
      2020-12-12回复nono
      里面的判断  吧this换成that   在if(this.data.imD!=true)前面加个console.log(this.data) 看看打印的啥 就清楚了
      2020-12-12
      回复
    • nono
      nono
      发表于移动端
      2020-12-12回复迪克
      尚有一事不明,其他该用that误用this的地方,编译或执行到该处时开发系统会报错。此处为何不报错呢?
      2020-12-12
      回复
    • 迪克
      迪克
      2020-12-12回复nono
      这个得具体问题具体分析  console.log() 或者debugger 打断点  看看程序执行到此处的时候的数据是什么样子的。
      2020-12-12
      回复
    • 张有釜
      张有釜
      2020-12-14
      箭头函数中的this作用于本来就是函数外的
      2020-12-14
      回复
登录 后发表内容
问题标签