跳到主要内容
CNode

请教vuex问题,提交action后,state变化了,非routerview的组件无法获取更新后的state

问答
Sshuaishenk发布于 8 年前最后回复 8 年前
754210

如图,我想登录后展示用户名,routerview中由login切换到home,username能展示没问题。 但是header组件是公用的,不在routerview中,就无法触发computed函数了,右上角没有值 test.png test2.png test3.png test4.png

查看回复

回复 (7)

J
JsonSong89#18 年前

0 vue devtools必备 1 store怎么注册的? 2 state是否变化

L
LynanBreeze#28 年前

直接把$store.state.account.username绑定到html中 例如 <div class="username">{{$store.state.account.username}}</div> 昨天刚好碰到这个问题 vuexstate更新视图不更新

S
shuaishenk#38 年前
引用 JsonSong890 vue devtools必备 1 store怎么注册的? 2 state是否变化

@178220709 state确实变了,alert出来后是变化的值,就是没触发更新

J
JsonSong89#58 年前

还有种可能, store声明的时候,没有定义username,所以这个属性上面没有get set的双向绑定的监听?

P
PedroGao#68 年前

推荐在vuex的getter里面定义这样的获取函数,再放在组件里面的computed属性

S
scottjeremy#78 年前

那是因为vuex里没有深度观察,所以你vuex里的account对象里的值就算更新了也拿不到 正确的解决办法是更改account的内存地址,也就是在最后面state.account = Object.assign({},state.account)就可以了 更改了内存地址,相应的也会触发vuex里的视图更新

参与回复

登录后即可参与回复。登录