Vue – Error: [vuex] unknown local mutation type: menu/SET_NAVMENU, global type: user/SET_NAVMENU

2020-06-03 1,844 0

Vuex Store中子Module调用子Module中的mutations时无效

问题还原

  • commit语法commit(mutations路径,参数信息,配置选项),在子模块中调用子模块中的mutationsactions(使用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

相关文章

Vue – Fixed:router-view 切换跳转当前页面不刷新问题
Vue – Error: Redirected from “/login” to “/” via a navigation guard.