问题:
小程序无法获取用户头像
原因:
无法获取头像的原因是,代码里出现了两个onLoad事件。
详细原因:
onLoad事件是在页面加载完成后就调用的代码,会在页面或图像加载完成后立即发生。
onLoad里写的是获取用户信息的方法,也包括了获取头像的方法,而我在修改代码前未注意到已经有了一个onload 事件,又添加了一个onLoad,所以导致获取用户信息的onLoad事件没有执行,因此获取不到用户头像
onLoad代码:
onLoad: function() {
let that = this;
let openId = wx.getStorageSync("openId");
if (openId == null || openId == "") {
that.setData({
isAuthor: true
})
return
}
// 获取用户信息回调
app.userInfoReadyCallback = res => {
// 依靠Object.keys()这个方法通过判断它的长度来知道它是否为空。Object.keys(object).length === 0
//判断json中是否存在某个字段: !("key" in obj) 和 res.hasOwnProperty("key")
if (res.errMsg === "getSetting:ok") {
if (!res.authSetting['scope.userInfo']) {
that.setData({
isAuthor: true
})
}
}
// 判断授权成功后的业务处理
if (res.errMsg === "getUserInfo:ok") {
that.setData({
userInfo: res.userInfo,
headImg: res.userInfo.avatarUrl,
openId: openId,
isAuthor: false
})
}
}
}