Vue.js Vuex |如何在模块操作中实施全局变异?
我在一个名称空间模块中有一个操作和一个全局变异(即不在模块中)。我希望能够在行动中实现全球突变Vue.js Vuex |如何在模块操作中实施全局变异?,vue.js,vuejs2,vuex,Vue.js,Vuejs2,Vuex,我在一个名称空间模块中有一个操作和一个全局变异(即不在模块中)。我希望能够在行动中实现全球突变 // Global mutation export default { globalMutation (state, payload) { ... } } // Action in a namespaced module export default { namespaced: true, actions: { namespacedAction ({ commit,
// 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 })
只想添加一些东西:如果global有“namespaced:true”,您必须执行以下操作:commit('global/globalmutate',payload,{root:true})更多信息:({root:true}也适用于dispatch btw。)