初学者求问。微信小程序中需要从服务器获取信息之后根据有无name显示不同的内容,以下两段代码都写在onlode中,上面的console.log打印出来内容正常,下面的console.log打印出来为空。 判定的也是按空来显示的 是我赋值的方法不对吗。 有试过把下面一段放在onshow中 没有变化
{
getApp().globalData.length = res.data.data.length
for (let i = 0; i < getApp().globalData.length; i++) {
getApp().globalData._id = res.data.data[i]._id
getApp().globalData.family_id = res.data.data[i].family_id
getApp().globalData.student_id = res.data.data[i].student_id
getApp().globalData.name = res.data.data[i].name
getApp().globalData.clazz = res.data.data[i].clazz
console.log(getApp().globalData.name)
}}
var that = this
console.log(getApp().globalData.name)
if (getApp().globalData.name == "" || getApp().globalData.name == 'undefined') {
this.setData({
login: false
});
} else {
this.setData({
login: true
})
}
初始化值要在data里面赋值
其他地方赋值要用setData函数
您的方法执行是否是异步的,如果是异步的,那么 在您请求后端接口时,下面的方法已经开始执行了,还未等到您取回数据就已经执行完毕,这时候数据才从服务端取回,值也才赋值进去。