// 弹出登录窗口
openLoginCard() {
var that = this;
var userInfo = app.globalData.userInfo;
console.log(userInfo)
if (userInfo == null) {
that.setData({
loginshowModalStatus: true,
})
}
},
// 添加到购物车的请求
cartrequest: function(data) {
var that = this;
var userInfo = app.globalData.userInfo;
console.log(userInfo)
if (userInfo == null) {
that.setData({
loginshowModalStatus: true,
})
return;
}
代码在最上面,都是英文标点.我是想做个判断,让未登录的用户打开小程序的时候,打开一个提醒登录的弹窗.已经登录的就不弹了.购物车也是的,未登录的用户点击购物车也会弹窗,已经登录的就直接添加成功.可是一样的代码,为什么会有不同的结果,非登录的状态下是一致的,登录了不行.最可气的,登录状态下直接读app,然后app下的globalData下的userInfo是有值的,直接读,不到,读他爷爷能读到,这也太护犊子了吧?
你获取用户信息时,是异步的,最好是先做个回调把
是的,一开始我没注意,确实是这样的,谢谢~
能从你提供的代码里看出问题的 应该是超级大神。(代码不够完整,但是你提供完整的 太多了 我也不想看)
可能以下几种情况;
1、登录 或者 获取用户信息 是异步操作;
2、不知道你的app.globalData.userInfo 是否有初始值 如 globalData:{userInfo:{}} 还是 globalData:{userInfo:null}
前者应该用JSON.stringify(app.globalData.userInfo)=='{}'判断。
3、...
对对对,是异步操作
.我一开始同步的,后来我改了.可以了,
........
谢谢