收藏
回答

全局变量设置问题

问题模块
API和组件

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

}


最后一次编辑于  2017-11-08  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

2 个回答

  • 漫无止境
    漫无止境
    2017-11-08

    没加this。

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

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


    2017-11-08
    赞同
    回复
  • 实用记事本小程序
    实用记事本小程序
    2017-11-08

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


    2017-11-08
    赞同
    回复