Ist es möglich, eine Aktion zwischen Namespace-Modulen auszulösen?
ZB habe ich Vuex-Module "Gameboard" und "Benachrichtigung". Jeder hat einen Namespace. Ich möchte eine Aktion vom Spielbrett an das Benachrichtigungsmodul senden.
Ich dachte, ich könnte den Modulnamen im Namen der Versandaktion folgendermaßen verwenden:
// store/modules/gameboard.js
const actions = {
myaction ({dispatch}) {
...
dispatch('notification/triggerSelfDismissingNotifcation', {...})
}
}
// store/modules/notification.js
const actions = {
triggerSelfDismissingNotification (context, payload) {
...
}
}
Aber wenn ich das versuche, bekomme ich Fehler, die mich dazu bringen, dass vuex versucht, eine Aktion innerhalb meines Gameboard-Moduls auszulösen:
[vuex] unbekannter lokaler Aktionstyp: Benachrichtigung / TriggerSelfDismissingNotification, globaler Typ: Spielbrett / Benachrichtigung / TriggerSelfDismissingNotification
Gibt es eine Möglichkeit, von Vuex-Modul zu Modul zu versenden, oder muss ich eine Art Brücke in der Root-Vuex-Instanz erstellen?
notification/trigger
muss. Wenn ich möchte, dass es ein bisschen allgemeiner ist, mache ich es${NOTIF_TYPE_NAME}/${NOTIF_TRIGGER_ACTION}
trotzdem Wenn ich den Schrägstrich brauche oder sogar eine Hilfsfunktion dafür erstelle, habe ich das Gefühl, dass ich viel mehr bezahle, als ich bekomme, wenn meine App modularer sein soll. Dies ist meine Meinungthis.dispatch
. Es braucht nicht{root: true}
. Das ist global.{root: true}
. Der Fall, den Sie gemeint haben, ist wahrscheinlich das Versenden an ein untergeordnetes Modul, das dieses Flag tatsächlich (und offensichtlich) nicht benötigt.Wie erwähnt @ MKatleast3
Sie können verwenden
this.dispatch
. Es braucht nicht{root: true}
Versandoptionen. Das ist global.quelle