如何从同一操作中异步调用提交和调度?

时间:2019-01-14 15:15:22

标签: vuejs2 vuex vuex-modules

我想在突变完成后执行一个动作。

变异(SOME_MUTATION)来自同一商店,而动作(test/testAction)来自模块

someAction(context, data) {
    context.commit('SOME_MUTATION', data) // this should be committed first
    context.dispatch('test/testAction') // this action should be dispatched after the above commit
}

注意:我不知道它是否是默认行为

1 个答案:

答案 0 :(得分:0)

您将someAction(context, data)更改为此

someAction({commit, dispatch}, data) {
    call.action()
    .then(=> {
    commit('some_mutations',data)
    dispatch('another_action')
    }
}

使用{commit, dispatch}可以让您同时使用两个内部动作,而不必说context。因为操作仅接受2个参数,所以您都将它们作为单个对象传递,因此您仍然可以传递data参数。

相关问题