我在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('获取用户登录态失败!' + res.errMsg)
}
}
})
globalData: {
userInfo: null,
access_token: null,
openId: null,
sessionKey: null,
unionId: null
}
网友回复:
用 getApp().globalData.userInfo=XXX,这样来取值和赋值
没加this。
success不用箭头函数的话,需要先声明let that=this,然后用that.globalData。
globalData可以改名为store或state或者其他你认为合适的词,不是wx的保留词。
1楼和2楼同样的道理。解决