[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 中的
·
我之前是这么使用的:
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
更多推荐
已为社区贡献2条内容
所有评论(0)