无法在重新加载页面后将mapState中的值赋给data属性,如果转到子页面则不起作用,但如果已站在子页面中并重新加载浏览器则不起作用。
Computed mapState
computed: {
...mapState({
tsStore: state => state.SchemeStore
})
}
数据属性
data () {
return {
works: '',
offTime: '',
}
}
挂载的
if (this.tsStore.singleView) {
// Set data based on api.
let single = this.tsStore.singleView
this.works = single.works
this.offTime = single.offTime
}
重新加载后,数据属性中的works
和offTime
将为空。
发布于 2018-09-17 01:17:03
是的,问题是在组件被mounted
之后更新state
;因此,调用updated
方法而不是mounted
方法。它在此小提琴中可见,其中API调用由setTimeout
模拟。
https://jsfiddle.net/eywraw8t/369915/
我认为更新组件的最好方法是使用computed properties
,它实现了代理来监视更改,就像这个小提琴:
https://jsfiddle.net/3mn2xgvr/
我将更改移动到一个计算属性,以便当Vuex中的状态更改时,所有依赖于该状态的数据也会更改。
https://stackoverflow.com/questions/52353370
复制相似问题