错误代码

1
2
3
4
5
6
7
8
9
setleftSelectData:function(){
http.HttpRequst("GET", "setleftSelectData", {
userId: app.globalData.userInfo.userId
}, false, 0, function(res) {
this.setData({
leftSelectData:res.data
})
})
}

上述代码中的http.HttpRequest是封装好的请求方法,在该方法的回调中直接使用this.setData()会回报’setData’ of undefined,是因为这个this的指向并非是原来的this

解决方法

以上述代码为例:

1
2
3
4
5
6
7
8
9
10
setleftSelectData:function(){
let that = this;
http.HttpRequst("GET", "setleftSelectData", {
userId: app.globalData.userInfo.userId
}, false, 0, function(res) {
that.setData({
leftSelectData:res.data
})
})
}