app.js頁面 App({ globalData: { userInfo: "", js_code: "", openid: "", session_key: "" }, getUserInfo: function (cb) { var that = this; if (that.globalData.userInfo) { typeof cb == "function" && cb(that.globalData.userInfo) } else { wx.login({ success: res => { that.globalData.js_code = res.code wx.getUserInfo({ success: res => { that.globalData.userInfo = res.userInfo; typeof cb == "function" && cb(that.globalData.userInfo); // 請求官方接口,獲取openid和session_key wx.request({ url: "https://api.weixin.qq.com/sns/jscode2session", data: { appid: "********", secret: "*******", js_code: that.globalData.js_code, grant_type: "authorization_code" }, success: function (res) { that.globalData.openid = res.data.openid; that.globalData.session_key = res.data.session_key; }, fail: function () { } }) } }) } }) } } }) index.js頁面 Page({ data: { userInfos:{} }, onLoad: function (options) { var that = this; app.getUserInfo(); console.log(app.globalData); } })
在index中打印app.globalData結(jié)果是下圖,而直接調(diào)用全局變量會得到初始值"",應(yīng)該怎么解決?怎么獲取下面的數(shù)據(jù)?
網(wǎng)友回復(fù):
是不是在index頁面沒有更新數(shù)據(jù)?
var app=getApp()
onload:function(option){
var that=this
app.getUserInfo(function(userInfo)){
that.setData({
userInfo:userInfo
})
})
}
我之前這么寫過,沒有用,得到的是app.js里設(shè)置的初始值""
getApp().globalData
getApp().globalData得到的是初始值,不是動態(tài)改變后的值。
注意看一下我的截圖
看樣子是異步的問題噶。
那怎么解決呢?