當state里屬性定義為obj類型時,有時候出現(xiàn):在其他頁面修改完state值之后,其他頁面并沒有同步更新。
這時候需要轉換一下。JSON.parse(JSON.stringify(obj))
this.$store.dispatch("setGlobalUserInformation",JSON.parse(JSON.stringify(obj)))
補充知識:一個“錯誤”的vuex寫法:vuex刷新了數(shù)據(jù)但是視圖沒有刷新
這是個很尷尬的問題,讓我猜猜看你的代碼是不是這樣寫的:
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> |
區(qū)別就是你直接關聯(lián)到界面里面。為什么這樣?不清楚,畢竟是別人的框架。
以上這篇解決vuex改變了state的值,但是頁面沒有更新的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。
原文鏈接:https://blog.csdn.net/a5252145/article/details/102824181