直接使用this.setData
Cannot read property 'setData' of undefined;at api operateWXData success callback function
TypeError: Cannot read property 'setData' of undefined
问题原因
success方法指向闭包,所以this属于闭包,由此在success回调函数里是不能直接使用this.setData()的,如果我们要使用的话,可以在闭包之外先把this赋值给另一个变量。
解决方案
//在请求外面
const that = this
//例如我的
onLoad: async function (options) {
const list = []
const that = this
await wx.request({
// 网易云API
url:'http://127.0.0.1:3000/banner?type=1',
header: {
'content-type': 'application/json' // 默认值
},
success(res) {
// 获取 banner img字段
const {banners} = res.data
for(let i = 0;i < banners.length;i++){
list.push(banners[i].pic)
}
that.setData({
imagelist:list
})
}
})
}