Как вызвать коммит и отправить асинхронно от одного и того же действия?

Я хочу выполнить действие после того, как мутация сделала свое дело.

Мутация (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 ответ

Вы бы поменяли someAction(context, data) к этому

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

с помощью {commit, dispatch} позволит вам использовать оба внутри действия без необходимости говорить context, потому что действия принимают только 2 параметра, которые вы передаете как один объект, так что вы все равно можете передать data параметр.

Другие вопросы по тегам