我在app.js中globalData:{}定義了幾個全局變量,然后在onLaunch中使用wx.request請求http,在success回調中對globalData
中的變量進行賦值,但是一直提示globalData is not defined.
詳細代碼如下:
wx.login({
success: function (res) {
if (res.code) {
wx.request({
url: 'http://www.xxx.com/loginCode.php',
header: {
'content-type': 'application/json' // 默認值
},
method: 'GET',
dataType: 'json',
success: function (back) {
if (back.data.openid) {
globalData.openId = back.data.openid;
globalData.sessionKey = back.data.session_key;
globalData.unionId = back.data.expires_in;
} else {
console.log('獲取用戶openId失敗!' + back.errmsg);
}
}
})
} else {
console.log('獲取用戶登錄態(tài)失?。?#39; + res.errMsg)
}
}
})
globalData: {
userInfo: null,
access_token: null,
openId: null,
sessionKey: null,
unionId: null
}
網(wǎng)友回復:
用 getApp().globalData.userInfo=XXX,這樣來取值和賦值
沒加this。
success不用箭頭函數(shù)的話,需要先聲明let that=this,然后用that.globalData。
globalData可以改名為store或state或者其他你認為合適的詞,不是wx的保留詞。
1樓和2樓同樣的道理。解決