标题名在浏览器中的样子:

没错,中文意思就是:
无法读取未定义的属性‘setData‘
以小程序某个API为例:
wx.xx({
id: 'xxx'
}).then(function (res){
this.setData({
xxxx: res
})
})
就是会报标题名这个错误!
原因很简单:undefind.setData,故this指向为空(没有指向page)。可以修改一下代码:
let that = this
wx.xx({
id: 'xxx'
}).then(function (res){
that.setData({
xxxx: res
})
})
然后这还不最优雅的,于是用上箭头函数:
wx.xx({
id: 'xxx'
}).then((res) => {
this.setData({
xxxx: res
})
})
另外,讲讲箭头函数的this
其实,箭头函数内的this对象,是取于最近作用域中的this对象。本身自己没有this对象,也是它无法作为构造函数的一种原因。
本文讲述了在微信小程序中遇到的 'setData' 未定义问题,通过分析 this 的指向问题,介绍了使用 let 临时保存 this 和箭头函数来避免该错误的方法。同时解释了箭头函数中 this 的行为。
1万+

被折叠的 条评论
为什么被折叠?



