Czy jest możliwe wysłanie akcji między modułami w przestrzeni nazw?
Np. Mam moduły vuex „gameboard” i „notification”. Każdy ma przestrzeń nazw. Chciałbym wysłać akcję z planszy do modułu powiadomień.
Pomyślałem, że mógłbym użyć nazwy modułu w nazwie akcji wysyłki w następujący sposób:
// store/modules/gameboard.js
const actions = {
myaction ({dispatch}) {
...
dispatch('notification/triggerSelfDismissingNotifcation', {...})
}
}
// store/modules/notification.js
const actions = {
triggerSelfDismissingNotification (context, payload) {
...
}
}
Ale kiedy próbuję to zrobić, otrzymuję błędy, które sprawiają, że Vuex próbuje wywołać akcję w moim module planszy:
[vuex] nieznany typ akcji lokalnej: notification / triggerSelfDismissingNotification, typ globalny: gameboard / notification / triggerSelfDismissingNotification
Czy istnieje sposób wysyłania z modułu vuex do modułu, czy też muszę utworzyć jakiś rodzaj mostu w głównej instancji vuex?
notification/trigger
, to jeśli chcę, aby było trochę bardziej ogólne${NOTIF_TYPE_NAME}/${NOTIF_TRIGGER_ACTION}
, nadal potrzebuję ukośnika, a nawet stworzyć do tego funkcję pomocniczą, czuję, że gdy chcę, aby moja aplikacja była bardziej modułowa, płacę znacznie więcej niż otrzymuję. To jest moja opiniathis.dispatch
. Nie potrzeba{root: true}
. To jest globalne.{root: true}
. Przypadek, który miałeś na myśli, to prawdopodobnie wysyłanie do modułu potomnego, który rzeczywiście (i oczywiście) nie potrzebuje tej flagi.Jak mencioned @ MKatleast3
Możesz użyć
this.dispatch
. Nie wymaga{root: true}
opcji wysyłki. To jest globalne.źródło