在使用vuex的时候,在vue页面中使用
this.$store.commit('mapSet',map);
来调用mutations来改变state,但是在mutations中
mapSet:(state,map)=>{
console.log(map);
state.myMap=map;
}
但是在调用页面的时候,输出map对象是正常的,但是赋值的时候就会报堆栈溢出,请问是什么错误呢?如何解决呢?
在使用vuex的时候,在vue页面中使用
this.$store.commit('mapSet',map);
来调用mutations来改变state,但是在mutations中
mapSet:(state,map)=>{
console.log(map);
state.myMap=map;
}
但是在调用页面的时候,输出map对象是正常的,但是赋值的时候就会报堆栈溢出,请问是什么错误呢?如何解决呢?
虽然不知道为什么,但是我发现,在设置state的时候不要将其设置为null,比如:
a:null //这样会报错,堆栈溢出
a:{} //这样设置会好
并且,在mutations的时候,将参数赋值到state的属性中,比如:
a.a=参数
这样赋值就会正确且不会报错,
暂时就是这样解决这个问题,具体原理还不是很清楚,请各位大神指教
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
死循环了吧,设置myMap又触发了commit吧