Est-il possible d'envoyer une action entre des modules de noms-espaces?
Par exemple. J'ai les modules vuex "gameboard" et "notification". Chacun sont des noms. J'aimerais envoyer une action du plateau de jeu au module de notification.
J'ai pensé que je pourrais utiliser le nom du module dans le nom de l'action de répartition comme ceci:
// store/modules/gameboard.js
const actions = {
myaction ({dispatch}) {
...
dispatch('notification/triggerSelfDismissingNotifcation', {...})
}
}
// store/modules/notification.js
const actions = {
triggerSelfDismissingNotification (context, payload) {
...
}
}
Mais lorsque j'essaie de faire cela, des erreurs me font penser que vuex tente d'envoyer une action dans mon module de jeu:
[vuex] type d'action local inconnu: notification/triggerSelfDismissingNotification, type global: gameboard/notification/triggerSelfDismissingNotification
Existe-t-il un moyen de passer d'un module vuex à un autre ou dois-je créer une sorte de pont dans l'instance racine de vuex?
Il vous suffit de spécifier que vous expédiez à partir du contexte racine:
// from the gameboard.js vuex module
dispatch('notification/triggerSelfDismissingNotifcation', {...}, {root:true})
Désormais, lorsque la répartition atteindra la racine, le chemin de l’espace de nommage vers le module de notification sera correct (par rapport à l’instance racine).
En supposant que vous définissiez namespaced: true
sur votre module de magasin vuex.