报错vuex.esm.js:135 Uncaught Error: [vuex] getters should be function but "getters.mode" in module "userModule" is "dark". at assert (vuex.esm.js:135:1)
原因:在使用vuex的moulds时 index.js中已创建了一个vue实例new Vuex.Store
,在模块文件中又再创建了一个,导致报错。
src\store\index.js
import Vue from 'vue';
import Vuex from 'vuex';
import user from './modules/user'; // 引入store的其余js组件
Vue.use(Vuex);
// 创建并暴露store
export default new Vuex.Store({
modules:{
userModule: user, // 定义在vue调用时候的调用名
}
});,
})
src\store\modules\user.js
// import Vue from 'vue';
// import Vuex from 'vuex';
// Vue.use(Vuex);
// export default new Vuex.Store ({
export default ({ // 直接抛出对象,写成export default new Vuex.Store会报错,以上无用的引用可去掉
state: {
userInfo: {
uuid: '',
sideMode: 'dark',
},
},
getters:{
mode(state) {
return state.userInfo.sideMode;
},
},
mutations: {
SET_SIDE_MODE(state, sideMode) {;
state.userInfo.sideMode = sideMode;
}
},
actions: {},
modules: {}
});
标签:function,vuex,getters,js,state,sideMode,import,Vuex
From: https://blog.csdn.net/WDY66886688/article/details/137151468