vuex mutations 设置state堆栈溢出

在使用vuex的时候,在vue页面中使用

this.$store.commit('mapSet',map);

来调用mutations来改变state,但是在mutations中

 mapSet:(state,map)=>{
            console.log(map);
            state.myMap=map;
        }
    

但是在调用页面的时候,输出map对象是正常的,但是赋值的时候就会报堆栈溢出,请问是什么错误呢?如何解决呢?

clipboard.png

阅读 3.4k
2 个回答

死循环了吧,设置myMap又触发了commit吧

虽然不知道为什么,但是我发现,在设置state的时候不要将其设置为null,比如:
a:null //这样会报错,堆栈溢出
a:{} //这样设置会好
并且,在mutations的时候,将参数赋值到state的属性中,比如:
a.a=参数
这样赋值就会正确且不会报错,
暂时就是这样解决这个问题,具体原理还不是很清楚,请各位大神指教

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题