<template> <view>
<view>{{$store.state.type}}</view> //动态显示type值
<button @click="add1">
</view></template>
<script>.........
methods:{ add1(){this.$store.state.type ++;console.log(this.$store.state.type}}
... //改变type值,并打印
</script>
//在store文件state中已经注册type
state:{type:0}
这时候点击按钮无法更新视图,console打印的是在变化的。
1.相同的,(我在uniapp中应用)在main.js中注册的全局变量也无法生效。
2.使用vue.set的方法在data中注册对象内的值,也无法生效。
3.在页面or组件中将这个全局变量赋值给data(computed也试了)中的新变量,这时全局变量更新,但是这个新变量不会更新。(这里我能知道,大概就是一次性赋值了,不是响应式)
找了很多办法,能理解大概是全局变量在页面或组件应用时没有形成响应式状态,但不知如何解决。
然后在前一分钟试出了一个方法,在页面data中自行注册的变量,加入到其中的方法使其强行更新。↓
data(){return{a:0}}//页面data中注册一个新变量
{{$store.state.type,a}}//在{{}}中type的后面跟上这个a
methods....this.a ++ ; //每次改变type值时同时改变这个data中的a
此时的动态更新就成功了。
如何解决以上的几个点(1,2,3),以及为何会出些这些情况?
希望有好心大哥帮帮忙,算是第一个馋了很久的问题了。拜托~