CNode

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

问答
Sshuaishenk发布于8 年前最后回复8 年前7 回复5418 浏览0 收藏

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

查看回复

回复 (7)

P
PedroGao#1·8 年前

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

S
scottjeremy#2·8 年前

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

J
JsonSong89#3·8 年前

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

L
LynanBreeze#4·8 年前

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

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

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

J
JsonSong89#7·8 年前

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

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