Vuex |如何在模块操作中提交全局突变?
Posted
技术标签:
【中文标题】Vuex |如何在模块操作中提交全局突变?【英文标题】:Vuex | How to commit a global mutation in a module action? 【发布时间】:2017-11-20 22:54:12 【问题描述】:我在命名空间模块中有一个动作和一个全局突变(即不在模块中)。我希望能够在动作中提交全局突变。
// 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
函数来调用这个全局突变?
【问题讨论】:
【参考方案1】:看来我刚刚找到了使用 root: true
参数的方法。
commit('globalMutation', payload, root: true )
如果模块是命名空间的,则使用全局路径:
commit('module/mutation', payload, root: true )
【讨论】:
只想添加一些东西:如果 global 有“namespaced: true”,你必须这样做:commit('global/globalMutation', payload, root: true ) 更多信息在这里:vuex.vuejs.org/api/#commit( root: true 也适用于调度。)以上是关于Vuex |如何在模块操作中提交全局突变?的主要内容,如果未能解决你的问题,请参考以下文章