全局变量设置问题
发布于 6 年前 作者 min10 17701 次浏览 来自 问答

我在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

}

2 回复

没加this。

success不用箭头函数的话,需要先声明let that=this,然后用that.globalData。

globalData可以改名为store或state或者其他你认为合适的词,不是wx的保留词。

用 getApp().globalData.userInfo=XXX,这样来取值和赋值

回到顶部