在做小程序的时候碰到了app.globalData.userInfo
获取userInfo的时候报空,查了下原因,小程序获取信息的时候为异步请求
所以要定时检测头像
// pages/personal/index/index.js
var app = getApp();
Page({
/**
* 页面的初始数据
*/
data: {
userInfo: {}
},
/**
* 生命周期函数--监听页面加载
*/
onLoad:
function (options) {
var that =
this;
//微信获取信息为请求(异步)所以定时检测头像
this.getWxUserInfo();
},
getWxUserInfo(){
if (
this.data.avatarUrl){
//如果已经有头像了,则退出
return;
}
console.log(
'do-getWxUserInfo')
if (!app.globalData.userInfo.avatarUrl) {
//判断是否登录获取到头像
//登录信息中没有
if (wx.getStorageSync(
"userData").imageUrl){
//判断缓存中是否有头像
this.setData({
avatarUrl: wx.getStorageSync(
"userData").imageUrl
})
return ;
}
//缓存中没有重新递归这个方法
setTimeout(() => {
this.getWxUserInfo();
},
500)
}
else{
this.setData({
avatarUrl: app.globalData.userInfo.avatarUrl
})
}
},
})