微信小程式 錯誤記錄
阿新 • • 發佈:2019-01-24
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("獲取使用者資訊") },