我有一个 Vuex 商店,我将其注入到我的实例中:
import store from '../store';
const mainNav = new Vue({
el: '#main-nav',
store,
components: { NavComponent }
});
我正在组件中从该商店创建一个计算属性:
computed: {
isWide() {
return this.$store.state.nav.type === 'wide';
}
}
这确实会在组件初始化时为模板创建 this.isWide
属性,但是当存储值更新时,组件不会注册它 - 旧值仍在模板上。
我在这里做错了什么?
原文由 babbaggeii 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果您正确设置所有内容,您的代码应该可以工作: http ://codepen.io/CodinCat/pen/RKZeZe?editors=1010
一个非常常见的错误是您没有提供您所在州的初始数据。
您应该明确声明状态形状,而不是
做这个:
或者属性不会是反应性的,例如这个例子: http ://codepen.io/CodinCat/pen/ggxBEV?editors=1010
并确保您确实更新了状态,也许问题只是您没有按预期正确更新状态。