vuex.esm.js?e4c8:985 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'commit')

报错原因:虽然使用了vuex但是store没有在main.js中注册使用
解决:在main.js中加入下面高亮的代码
import Vue from 'vue'
import App from './App.vue'
import VueRouter from 'vue-router'
import router from './router'
import element from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css';
import './assets/reset.css'
import store from './store'
//导入语言
import i18n from './language/index'
import api from './api/index'
Vue.prototype.$api=api;
Vue.config.productionTip = false
Vue.use(VueRouter)
Vue.use(element)
new Vue({
store,
router,
i18n,
render: h => h(App),
}).$mount('#app')
解决上面的之后有报:

vuex.esm.js?e4c8:1134 [vuex] module namespace not found in mapMutations(): loginModule/
介绍常规解决办法:


解决示例如下:

分析上图:你引人模块时起了一个别名叫lo,那么你在modules中注册的名字就应该是你的小仓库的名字:别名。
如果你的名字不符合标准也是会报这个错误的,而且我看这个错误也很少见
所以为了简单起见导入文件时最好就和小仓库名字一样,就可以简写啦
- import Vue from 'vue'
- import Vuex from 'vuex'
- import loginModule from './modules/loginModule'
-
- Vue.use(Vuex)
-
- export default new Vuex.Store({
- state: {
- },
- mutations: {
- },
- actions: {
- },
- modules: {
- loginModule
- }
- })
