vuex模块(modules)中触发不了mutations问题---[vuex] module namespace not found in mapMutations(): cartStore/

报错信息

在这里插入图片描述

store/modules/cartStore.js

const cartStore = {
    
    
    namespace: true,
    state: {
    
    
        num: localStorage.getItem('cartNum') || 1,
    },
    getters: {
    
    },
    mutations: {
    
    
        setNum(state) {
    
    
            state.num++;
            localStorage.setItem('cartNum', state.num);
        },
    },
    actions: {
    
    }
}

export default cartStore;

store/index.js

import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

import cartStore from './modules/cartStore'
import pathStore from './modules/pathStore'

export default new Vuex.Store({
    
    
  modules: {
    
    
    cartStore,
    pathStore
  }
})

views/Car.vue

<template>
  <div class="home">
    {
   
   { cartNum }}
    <button @click="addCartNum">持久化加1</button>
  </div>
</template>
<script>
import {
    
     mapMutations, mapState } from 'vuex'

export default {
    
    
  name: 'Home',
  data() {
    
    
    return {
    
    
    }
  },
  methods: {
    
    
    ...mapMutations('cartStore',
      ['setNum']
    ),
    addCartNum() {
    
    
      this.setNum();
    },
  },
}
</script>

找了半天什么问题都没发现,最后仔细看才发现
命名空间应该用namespaced, 我写成了namespace,改一下就好了。。。。

猜你喜欢

转载自blog.csdn.net/qq_48960335/article/details/123925799