最佳答案
在 Vuex 存储突变中,是否可以访问 getter。
new Vuex.Store({
state: {
question: 'Is it possible to access getters within a Vuex mutation?'
},
mutations: {
askQuestion(state) {
// TODO: Get question from getter here
let question = '';
if (question) {
// ...
}
}
},
getters: {
getQuestion: (state) => {
return state.question;
}
}
});
当然,这个示例没有多大意义,因为我可以直接访问突变中的 state
对象上的 question
属性,但是我希望您明白我正在尝试做什么。也就是说,有条件地操纵状态。
在变异中,this
是 undefined
,state
参数提供对 state
对象的访问,而不是存储的其余部分。
我猜这是不可能的,除非我漏掉了什么?我猜想另一种方法是要么在存储之外执行这种逻辑(导致代码复制) ,要么实现执行这种逻辑的操作,因为操作可以访问整个存储上下文。我很确定这是一个更好的方法,那就是让突变集中在它实际上应该做的事情上,使状态发生突变。这可能是我最终要做的,但我只是好奇,如果访问一个突变中的 getter 是可能的吗?