vue.js - 有没有办法在两个命名空间的 vuex 模块之间分派(dispatch)操作?

标签 vue.js vuejs2 vuex vuex-modules

是否可以在命名空间模块之间分派(dispatch)操作?

例如我有 Vuex 模块“游戏板”和“通知”。每个都有命名空间。我想从通知模块中的游戏板模块发送一个 Action 。

我想我可以像这样在调度操作名称中使用模块名称:

// store/modules/gameboard.js
const actions = {
    myaction ({dispatch}) {
        ...
        dispatch('notification/triggerSelfDismissingNotifcation', {...})
    }
}
// store/modules/notification.js
const actions = {
    triggerSelfDismissingNotification (context, payload) {
        ...
    }
}

但是当我尝试这样做时,我得到了错误,让我认为 Vuex 正在尝试在我的游戏板模块中调度一个 Action :

[vuex] unknown local action type: notification/triggerSelfDismissingNotification, global type: gameboard/notification/triggerSelfDismissingNotification

有没有一种方法可以将给定 Vuex 模块的 Action 分派(dispatch)到另一个 Vuex 模块,或者我是否需要在根 Vuex 实例中创建某种桥接器?

最佳答案

你只需要指定你从根上下文中调度:

// from the gameboard.js vuex module
dispatch('notification/triggerSelfDismissingNotifcation', {...}, {root:true})

现在,当分派(dispatch)到达根时,它将具有通向通知模块的正确命名空间路径(相对于根实例)。

这是假设您在 Vuex 存储模块上设置 namespaced: true

关于vue.js - 有没有办法在两个命名空间的 vuex 模块之间分派(dispatch)操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42984132/

相关文章:

javascript - Vue.js 动态迭代属性

javascript - 如何在 Vue.js 中设置 optgroup 选择标签?

javascript - 从父组件执行子(组件)函数

javascript - 我如何处理 vuex 调度响应?

javascript - 如何将商店中对象的动态属性用作 v 模型?

javascript - Vuex map 状态未定义状态

apache - Vue 使用 Apache 部署 : routes don't work in history mode

vue.js - 存储值更改但不影响组件中的计算属性

javascript - 如何使用 Vue/Vuex 设置动态对象值?

javascript - 在 vuejs 中带有两个引号的 img 标签