Можно ли отправить действие между модулями пространства имен?
Например, у меня есть модули vuex "gameboard" и "уведомление". Каждый из них имеет пространство имен. Я хотел бы отправить действие с игровой доски в модуль уведомлений.
Я думал, что мог бы использовать имя модуля в имени действия отправки следующим образом:
// store/modules/gameboard.js
const actions = {
myaction ({dispatch}) {
...
dispatch('notification/triggerSelfDismissingNotifcation', {...})
}
}
// store/modules/notification.js
const actions = {
triggerSelfDismissingNotification (context, payload) {
...
}
}
Но когда я пытаюсь сделать это, я получаю ошибки, которые заставляют меня думать, что vuex пытается выполнить действие в моём игровом модуле:
[vuex] неизвестный тип локального действия: уведомление / triggerSelfDismissingNotification, глобальный тип: игровая доска / уведомление / triggerSelfDismissingNotification
Есть ли способ отправки из модуля vuex в модуль или мне нужно создать какой-то мост в корневом экземпляре vuex?
notification/trigger
, тогда, если я хочу, чтобы это было немного более общим, я делаю${NOTIF_TYPE_NAME}/${NOTIF_TRIGGER_ACTION}
, все же Мне нужна косая черта или даже создание вспомогательной функции для этого, я чувствую, что когда я хочу, чтобы мое приложение было более модульным, я плачу намного больше, чем получаю. Это мое мнениеthis.dispatch
. Это не нужно{root: true}
. Это глобально.{root: true}
. Случай, который вы имели в виду, вероятно, отсылается к дочернему модулю, который действительно (и очевидно) не нуждается в этом флаге.Как mencioned @ MKatleast3
Вы можете использовать
this.dispatch
. Это не нужно{root: true}
в опциях отправки. Это глобально.источник