É possível despachar uma ação entre módulos com espaço para nome?
Por exemplo, eu tenho os módulos vuex "gameboard" e "notification". Cada um tem espaço para nome. Gostaria de despachar uma ação do tabuleiro de jogo para o módulo de notificação.
Eu pensei que poderia usar o nome do módulo no nome da ação de despacho como este:
// store/modules/gameboard.js
const actions = {
myaction ({dispatch}) {
...
dispatch('notification/triggerSelfDismissingNotifcation', {...})
}
}
// store/modules/notification.js
const actions = {
triggerSelfDismissingNotification (context, payload) {
...
}
}
Mas quando tento fazer isso, obtenho erros que me fazem pensar que a vuex está tentando despachar uma ação dentro do meu módulo da placa de jogo:
[vuex] tipo de ação local desconhecido: notification / triggerSelfDismissingNotification, tipo global: gameboard / notification / triggerSelfDismissingNotification
Existe uma maneira de despachar do módulo vuex para o módulo ou preciso criar algum tipo de ponte na instância raiz do vuex?
notification/trigger
, então se eu quero que seja um pouco mais genérico${NOTIF_TYPE_NAME}/${NOTIF_TRIGGER_ACTION}
, ainda preciso da barra, ou até mesmo criar uma função auxiliar para isso, sinto que quando quero que meu aplicativo seja mais modular, pago muito mais do que recebo. Esta é minha opiniãothis.dispatch
. Não precisa{root: true}
. Isso é global.{root: true}
. O caso que você quis dizer é provavelmente o envio para um módulo filho, que de fato (e obviamente) não precisa desse sinalizador.Como mencionado @ MKatleast3
Você pode usar
this.dispatch
. Não precisa de{root: true}
opções de envio. Isso é global.fonte