Как вызвать коммит и отправить асинхронно от одного и того же действия?
Я хочу выполнить действие после того, как мутация сделала свое дело.
Мутация (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
параметр.