this.data与this.data.hasUserInfo中某字段的值不一致,请问是什么问题?
//index.js
//获取应用实例
const app = getApp()
const loginUrl = 'http://127.0.0.1:8090/api/mini/login';
Page({
data: {
userInfo: {},
hasUserInfo: false,
canIUse: wx.canIUse('button.open-type.getUserInfo')
},
onLoad: function () {
if (app.globalData.userInfo) {
this.setData({
userInfo: app.globalData.userInfo,
hasUserInfo: true
})
// console.log('if execute')
} else if (this.data.canIUse) {
// 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
// 所以此处加入 callback 以防止这种情况
app.userInfoReadyCallback = res => {
this.setData({
userInfo: res.userInfo,
hasUserInfo: true
})
}
// console.log('else if execute,data:',this.data)
} else {
// 在没有 open-type=getUserInfo 版本的兼容处理
wx.getUserInfo({
success: res => {
app.globalData.userInfo = res.userInfo
this.setData({
userInfo: res.userInfo,
hasUserInfo: true
})
// console.log('else execute')
}
})
}
},
onReady: function(){
console.log('ready:',this.data.hasUserInfo,this.data)
if (this.data.canIUse && (this.data["hasUserInfo"])) {
wx.switchTab({
url: '/pages/home/home',
})
}
},
getUserInfo: function(e) {
app.globalData.userInfo = e.detail.userInfo
this.setData({
userInfo: e.detail.userInfo,
hasUserInfo: true
})
this.checkSession();
},
//自定义用户授权登录
checkSession: function(){
wx.checkSession({
success: function () {
console.log('用户已授权')
wx.switchTab({
url: '/pages/home/home',
})
},
fail: function () {
console.log('未授权,开始授权...')
wx.login({
success: function (res) {
//发送请求
wx.request({
url: loginUrl, //接口地址
data: { code: res.code },
method: 'Get',
header: { 'content-type': 'application/json' },
success: function (res) {
wx.setStorage({
key: 'third_session',
data: res.data.third_session,
})
}
});
}
})
}
})
}
})
onReady函数打印的日志如下:
请问是什么原因导致不一样的,我应该怎么做才能取到data中正确的数据。谢谢,感谢您的解答!