官方文档里,小程序由于是异步获取userinfo,所以使用了
userInfoReadyCallback
但如果在index.js的
onLoad
方法里,就要通过userInfo获取其他信息的话,
app.userInfoReadyCallback callback方法还没有执行,就会使用到userInfo
而报错啊
//app.js
// 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回// 所以此处加入 callback 以防止这种情况if (this.userInfoReadyCallback) {
this.userInfoReadyCallback(res)}
//index.js
onLoad: function () {
if (app.globalData.userInfo) {
this.setData({
userInfo: app.globalData.userInfo,
hasUserInfo: true
})
} else { // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
// 所以此处加入 callback 以防止这种情况
app.userInfoReadyCallback = res => { this.setData({
userInfo: res.userInfo,
hasUserInfo: true
})
}
}
},
完全看不懂,不理解。
是小程序加载的时候需要的……
换思路,不要想着在本页面,在之前 的页面上加载到变量里,传进来就不行了。