我在命名空间模块和全局变量(即不在模块中)中有一个操作。我希望能够在 Action 内部进行全局突变。

// Global mutation
export default {
  globalMutation (state, payload) {
    ...
  }
}

// Action in a namespaced module
export default {
  namespaced: true,

  actions: {
    namespacedAction ({ commit, dispatch, state }, payload) {
      commit({ type: 'globalMutation' })
    }
  }
}

调度命名空间操作后,Vuex将显示:
[vuex] unknown local mutation type: globalMutation, global type: module/globalMutation

我可以传递给commit函数以调用此全局突变吗?

最佳答案

看起来我刚刚找到了{ root: true }参数的方法。

commit('globalMutation', payload, { root: true })

如果模块已命名空间,请改用全局路径:
commit('module/mutation', payload, { root: true })

09-26 19:29