我正在尝试使用稍后定义的吸气剂来设置我的状态的一部分
export const store = new Vuex.Store({
state : {
a : 1,
b : getters.multiply(a)
},
getters : {
multiply : (state) => (param) => return param * 2
},
})
这是不允许的,因为吸气剂还没有准备好(我认为)。
文档确实指出 Vuex 状态属性可以采用函数来创建数据 - 但我还没有看到任何示例,完整状态是否需要通过函数调用或某些道具来初始化。
任何帮助表示赞赏。
通常
getters
是获取状态数据的方法。它不应该是两种方式。
在上面的例子中,你可以这样做:
const multiply = (params) => params * 2
const INIT_VALUE = 1
export const store = new Vuex.Store({
state : {
a : INIT_VALUE,
b : multiply(INIT_VALUE)
}
})
您可能需要一个更独立的“状态初始化函数”,它将返回初始 Vuex 状态对象的一个相当隔离的实例。如果需要,这将允许 Vuex module 重用 ^1。例如:
const INIT_VALUE = 1;
// Functions
const multiply = (a, b = 2) => Number(a * b);
const defaultState = a => ({
a,
b: multiply(a)
});
// State
const state = defaultState(INIT_VALUE);
// Store
export const store = new Vuex.Store({
strict: true,
state
});