在用mapMutations时,遇到了一个报错:
我的代码是这样写的:
// vuex分模块
export default{
namespaced: true,
state:{
},
mutations:{
addUser(state){
console.log('789');
}
},
getters:{
},
actions:{
}
}
// 目标组件
methods: {
...mapMutations(['addUser'])
},
我在写该模块的时候加上了 namespaced: true 。这个属性是设置命名空间,作用是为了解决不同模块命名冲突的问题,并且告诉vuex,该模块所有的state 、getters、mutations、actions里面的东西调用时都需要加上命名空间,这个命名空间就是该模块被import时导入时定义的名字。
然后就会出现错误。
解决办法:
methods: {
...mapMutations('moduleUserInfo',['addUser'])
},
在目标组件上使用映射函数时添加上被映射的方法所属模块即可解决。
如果没有加命名空间属性的话,则不需要添加所属模块。