当state里属性定义为obj类型时,有时候出现:在其他页面修改完state值之后,其他页面并没有同步更新。
这时候需要转换一下。JSON.parse(JSON.stringify(obj))
this.$store.dispatch("setGlobalUserInformation",JSON.parse(JSON.stringify(obj)))
补充知识:一个“错误”的vuex写法:vuex刷新了数据但是视图没有刷新
这是个很尴尬的问题,让我猜猜看你的代码是不是这样写的:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
<template>
<div id= "app" >
<img src= "./assets/logo.png" >
<button @click= "clickme" >点击我</button>
<span>{{countnumber}}</span>
</div>
</template>
<script>
export default {
name: 'app' ,
data() {
return {
countnumber: this .$store.state.count,
}
},
methods: {
clickme: function () {
this .$store.commit( "increment" );
}
},
}
</script>
<style>
</style>
|
那么恭喜你,无论你怎么平明点,都会是0.但是如果你是下面这种写法,那就是正确的了:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
<template>
<div id= "app" >
<img src= "./assets/logo.png" >
<button @click= "clickme" >点击我</button>
<span>{{$store.state.count}}</span>
</div>
</template>
<script>
export default {
name: 'app' ,
data() {
},
methods: {
clickme: function () {
this .$store.commit( "increment" );
}
},
}
</script>
<style>
</style>
|
区别就是你直接关联到界面里面。为什么这样?不清楚,毕竟是别人的框架。
以上这篇解决vuex改变了state的值,但是页面没有更新的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/a5252145/article/details/102824181