【发布时间】:2018-12-16 21:23:56
【问题描述】:
我的 Vuex.Store 出现问题:
我想使用两个状态条目作为带有 getter 的搜索条件(state.array 和 state.selected)来获取一个对象(getter.getRecipe)。然后我想将该结果存储在我的状态(state.recipe)中,以便能够在组件中更新它(即,根据客户端操作更改配方对象的一个键)。 但是,我不知道如何在我的状态下存储 getter 的结果(“this.getters.getRecipe”不起作用......)。 对提示很有帮助。非常感谢。
//store.js (vuex store)
export const store = new Vuex.Store({
state: {
array: [recipe1, recipe2],
selected: 0,
recipe: this.getters.getRecipe()
},
getters: {
getRecipe: (state) => {
return state.array[state.selected]
}
}
})
【问题讨论】:
-
你不觉得这是违反直觉的。你的状态就是你的状态,你的吸气剂就是吸气剂。
-
相反,您应该使用
getters之类的 getter,并从您的状态获取数据 -
getter 像计算属性一样被缓存。所以你不需要额外的状态属性。你可以只使用getter
getRecipe -
@Derek 感谢您的快速回复。关键是,我需要一个结果(即对当前状态的操作),然后以某种方式将该结果保存在状态中。我怎么能这样做?
-
只要 getter 依赖的属性发生变化,getter 就会自动更新。因此,在您的情况下,
state.array或state.selected更改将导致 getter 更新。
标签: javascript vue.js vuex