标题名在浏览器中的样子:
没错,中文意思就是:
无法读取未定义的属性‘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对象,也是它无法作为构造函数的一种原因。