Do not mutate vuex store state outside mutation handlers

chris_Evans
  • 330

1.父组件的data里面写了一个list
2.通过弹窗把这个list传过去
3.点击弹窗内的一个按钮 this.$emit("on-status",index)传方法给父组件
4.在onStatus()这个方法下,修改父组件list[index]的某个值报了这个错误

回复
阅读 9.3k
3 个回答

既然你用了Vuex,那么更改 Vuex 的 store 中的状态的唯一方法是提交 mutation$emit是不用vuex的情况下父子组件通讯使用的

把文档多看一看https://vuex.vuejs.org/zh-cn/...

你看下是不是开启了严格模式!

开启严格模式,仅需在创建 store 的时候传入 strict: true:

const store = new Vuex.Store({
// ...
strict: true
})
在严格模式下,无论何时发生了状态变更且不是由 mutation 函数引起的,将会抛出错误。这能保证所有的状态变更都能被调试工具跟踪到。

使用了 _.clone(obj)也报这个错误,直接使用 JSON.parse(JSON.stringify()) 可以的

宣传栏