自动冻结功能
文档上的一些说法
Immer 还在内部做了一件很巧妙的事情,那就是通过 produce 生成的 nextState 是被冻结(freeze)的,(Immer 内部使用Object.freeze
方法,只冻结 nextState 跟 currentState 相比修改的部分),这样,当直接修改 nextState 时,将会报错。 这使得 nextState 成为了真正的不可变数据。
immerjs疑问
“只冻结 nextState 跟 currentState 相比修改的部分),这样,当直接修改 nextState 时,将会报错” 这句话是修改 nextState与currentState 相比修改的部分 将会报错的意思吗?
那我给nextState新增一个属性为什么不行,或者是修改没有修改的部分还是报错
这里面指的部分冻结,是指只会冻结 currentState 里面在 produce 里被使用的部分,但是没说 nextState 没被冻结,实际上 nextState 是被完全冻结的。