当前位置:   article > 正文

[vuex] Do not mutate vuex store state outside mutation handlers.

[vuex] do not mutate vuex store state outside mutation handlers.

我之前是这么使用的:

this.form = this.$store.state.common.searchFormData;

form是检索表单,每次进入页面从vuex中取出进行初始化,但是在搜索表单中进行修改时,控制台报错,即[vuex] Do not mutate vuex store state outside mutation handlers.

报错原因:更改 Vuex 的 store 中的状态的唯一方法是提交 mutation,这是官网原话。意思是state中的值必须在回调函中更改,而我们上边的赋值其实是深度赋值,表单中的值改变会触发vuex中state的值变化,所以才会报此错误。

解决方案:

1、传入的参数进行处理,即使用

 
this.form=Object.assign({},this.$store.state.common.searchFormData);

进行对象的浅拷贝,这样就不会触发vuex中state的值。

2、报以上错误是因为开启了严格模式、即strict:true了,所以你可以把这个关闭false即可。

注意:生产环境中必须设置strict:false

strict
strict


声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号