我的vuex操作中有一个axios呼叫
return axios({
method: 'get',
url: `/myurl`,
}).then(function (response) {
context.commit('value', response.data.data);
}),
但是这在我的组件中称为
this.$store.dispatch("fetchmystuff")
如何向组件返回值?
过去,我将then()附加到调度程序上
this.$store.dispatch("fetchmystuff")
.then(function (response) {
//do some component stuff
}),
但是我想先在vuex中运行提交,然后将某些内容返回给组件。
答案 0 :(得分:1)
您已分派动作fetchmystuff
。
从组件内部,您要么想要。
value
computed: {
value() {
return this.$store.state.value
}
}
value
状态的吸气剂在组件中
computed: {
value() {
return this.$store.getters.value
}
}
在商店getters.js
getters: {
// ...
value: (state, getters) => {
return getters.value
}
}
调度程序/操作不需要访问组件
(因为状态仅通过变异/提交在存储中设置,并且状态已通过getter传递给其他组件)。
这允许商店与应用程序的组成部分之间的关注点分离。