Cannot assign to read only property ‘0‘ of object ‘[object Array]‘ 问题

在这里插入图片描述

我是使用umi创建的项目,在config里配置了
dva: {
immer: true,
hmr: true,
},
项目中用了immer,会自动进行冻结,修改数组的时候会出现

Cannot assign to read only property '0' of object '[object Array]'

这个问题
修改immer为false即可

Immer 在内部做了一件很巧妙的事情,那就是通过 produce 生成的 nextState 是被冻结(freeze)的,(Immer 内部使用Object.freeze方法,只冻结 nextState 跟 currentState 相比修改的部分),这样,当直接修改 nextState 时,将会报错。 这使得 nextState 成为了真正的不可变数据。

猜你喜欢

转载自blog.csdn.net/weixin_47541876/article/details/124386828