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,但是确实是起作用了,记录一下,这个问题用了小半天的时间。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐