项目场景:
Vuex中子模块如何调用子模块的actions或mutations
问题描述
因为有的子模块开启了命名空间,其他子模块不能直接访问
如果子模块没有开启命名空间,默认mutations和actions是挂载到全局上 都可以直接调用
这是准备调用的子模块代码 permission.js
const state = {}
const mutations = {}
const actions = {}
}
export default {
namespaced: true, // 开启命名空间
state,
mutations,
actions
}
解决方案:
使用 {root:true}
调用的子模块的代码
const actions = {
async lgout(context) {
// 调用 permission 另一子模块下的方法
context.commit('permission/setRoutes', [], { root: true })
}
}