¿Es posible despachar una acción entre módulos de espacio de nombres?
Por ejemplo, tengo los módulos vuex "tablero" y "notificación". Cada uno tiene un espacio de nombres. Me gustaría enviar una acción desde el tablero de juego al módulo de notificación.
Pensé que podría usar el nombre del módulo en el nombre de la acción de envío como este:
// store/modules/gameboard.js
const actions = {
myaction ({dispatch}) {
...
dispatch('notification/triggerSelfDismissingNotifcation', {...})
}
}
// store/modules/notification.js
const actions = {
triggerSelfDismissingNotification (context, payload) {
...
}
}
Pero cuando trato de hacer esto, recibo errores que me hacen pensar que vuex está tratando de enviar una acción dentro de mi módulo de tablero de juego:
[vuex] tipo de acción local desconocida: notificación / triggerSelfDismissingNotification, tipo global: tablero / notificación / triggerSelfDismissingNotification
¿Hay alguna forma de despachar de módulo vuex a módulo o necesito crear algún tipo de puente en la instancia vuex raíz?
notification/trigger
Entonces, si quiero que sea un poco más genérico${NOTIF_TYPE_NAME}/${NOTIF_TRIGGER_ACTION}
, todavía necesito la barra oblicua, o incluso crear una función auxiliar para esto, siento que cuando quiero que mi aplicación sea más modular, pago mucho más de lo que obtengo. Esta es mi opiniónthis.dispatch
. No tiene por qué{root: true}
. Esto es global.{root: true}
. El caso que quiso decir es probablemente el envío a un módulo secundario, que de hecho (y obviamente) no necesita este indicador.Como se mencionó @ MKatleast3
Puedes usar
this.dispatch
. No necesita{root: true}
opciones de despacho. Esto es global.fuente