Vuex Store中子Module调用子Module中的mutations时无效
问题还原
commit语法:commit(mutations路径,参数信息,配置选项),在子模块中调用子模块中的mutations或actions(使用dispatch),需配置第三个参数root:true项
//store/modules/user.js
const actions = {
getInfo({commit}){
return new Promise((resolve,reject)=>{
commit('menu/SET_NAVMENU',[]);
//执行后会抛出:[vuex] unknown local mutation type: menu/SET_NAVMENU, global type: user/SET_NAVMENU
resolve(true);
})
}
}
//
//store/modules/menu.js
const mutations = {
SET_NAVMENU: (state, menus) => {
state.navMenu = menus;
}
};
解决方案
- 设置
commit方法第三个参数为:{root:true}
//替换内容
//store/modules/user.js
commit('menu/SET_NAVMENU',[],{
root: true
});
参考
Segmentfault Posts:https://segmentfault.com/a/1190000009434398