VUEX 报错:Do not mutate vuex store state outside mutation handlers.

利用空闲事件做音乐webapp的时候出错了,记录下问题

VUEX 报错:Do not mutate vuex store state outside mutation handlers.

 

mutaitions

VUEX 报错:Do not mutate vuex store state outside mutation handlers.

action:

VUEX 报错:Do not mutate vuex store state outside mutation handlers.

组件代码

VUEX 报错:Do not mutate vuex store state outside mutation handlers.

 

问题出在了 payload ,在这的 list 是一个数组,是一个引用类型,所以就有可能在 vuex 之外的地方改变了 list。那么就有可能 this._committing 的值就不会变为 true 。所以就会报这个错。

解决办法就是把 list clone一下,在 mutation 代码那块的注释部分就是 clone 的办法,这样就不会在 vuex 之外的地方改变 state 了。推荐使用第二个方法,第二个方法的性能优于第一个

参考地址:https://www.cnblogs.com/lan1974/p/9111259.html