【微信小程序错误】TypeError: Cannot read property ‘setData‘ of undefined

背景

在使用微信小程序的时候,遇到了这么个问题。告诉你setData未找到!

原因分析

doSucces(e){
    console.log(e)
    console.log(e.data.result)
    if (common.isReturnSuccess(e)) {
      this.setData({
        image: e.data.result
      })
    }
  },

代码段中,我们可以看到,直接使用了this,这里的this获取到的内容出现了问题。上段代码中我们可以看到此处的this获取到的是undefined。

只要将此处的undefind解决掉就可以。

解决问题

  doSucces(e){
    console.log(e)
    var that = this
    console.log(e.data.result)
    if (common.isReturnSuccess(e)) {
      that.setData({
        image: e.data.result
      })
    }
  },

这样就搞定了。将this提前获取到内容。

另一种解决方案,

success: (res) =>  {
   this.setData({})
}

总结

  1. 如果当函数作为对象的方法调用,this 指向的是这个上级对象,即调用方法的对象。
  2. 如果是构造函数中的 this,那么 this 指向新创建的对象本身。

这就是指向的问题了!

文章到此结束!

这篇文章因为文字段被标记为质量低,以下文字就是为了打破它的文字段而造成的质量低!

相信和我一样遇到这个问题的的小伙伴们,心里也已经暗自问候了这个产品经理的祖总十八代了吧!

算法实在是不敢苟同,文字的长短和文章的质量有毛线的关系吗?

更多编程内容,请点击下方的卡片,关注《coder练习生》

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ybb_ymm

你的鼓励会是对我最大的支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值