
1、報錯this.getUserInfo(this.setData) is not a function;at pages/index/index onShow function;at api request success callback function
TypeError: this.getUserInfo is not a function
在回調結果里調用這個頁面的函數 this.fun() 或者 this.setData 時就會報錯,這時要在函數一開時的地方使用var that = this;,然后使用that調用數據。
這里的this指向的就是請求本身了如( wx.request ),而不是這個頁面?。?!
onLoad:function(options){
this.login();
},
login:function(){
var that = this;// 這個地方非常重要,重置data{}里數據時候setData方法的this應為以及函數的this, 如果在下方的sucess直接寫this就變成了wx.request()的this了
wx.login({
success: function (res) {
if (res.code) {
//發起網絡請求
wx.request({
url: ‘https://applet.ech-med.com/appwx/getAppToken‘,
data: {
code: res.code
},
success: function (re) {
console.log(re);that.getUserInfo();
that.setData({ });//如果在sucess直接寫this就變成了wx.request()的this了.必須為getdata函數的this,不然無法重置調用函數
}
})
} else {
console.log(‘獲取用戶登錄態失??!‘ + res.errMsg)
}
}
})
},
getUserInfo: function () {
console.log("獲取用戶信息")
},