uniapp定义全局变量的方法有好几种,具体可以百度,我选择了在app.vue定义globalData的方法来定义全局变量。
比如我要定义一个isSubmit的Boolean类型变量:
globalData: {
isSubmit: false,
},
但是问题来了,我要在其他页面中用v-if根据这个变量值判断是否显示的时候,应该怎么用呢?
起初,我在其他页面中也定义了相同的isSubmit变量,然后在onload()里面写:this.isSubmit = getApp().globalData.isSubmit,
页面初始化以后是可以显示没有问题,但问题来了,假如这个页面是navigateBack回来的呢?onload()方法这时根本不会被调用,所以此方法行不通
然后,我又在data return中这样写:isSubmit = getApp().globalData.isSubmit,同样,navigateBack回来也不能被刷新。
所以,我最终的方法是这样写:v-if = "getIsSubmit()",然后在methods中写一个方法:
getIsSubmit: function(){
return getApp().globalData.isSubmit
}
完美解决!
可能对大神来说这不算什么,也可能这个方法也很low,但是确实是起作用了,记录一下,这个问题用了小半天的时间。