- 41
- 0
自动冻结功能
文档上的一些说法
Immer 还在内部做了一件很巧妙的事情,那就是通过 produce 生成的 nextState 是被冻结(freeze)的,(Immer 内部使用Object.freeze方法,只冻结 nextState 跟 currentState 相比修改的部分),这样,当直接修改 nextState 时,将会报错。 这使得 nextState 成为了真正的不可变数据。
immerjs疑问
“只冻结 nextState 跟 currentState 相比修改的部分),这样,当直接修改 nextState 时,将会报错” 这句话是修改 nextState与currentState 相比修改的部分 将会报错的意思吗?
那我给nextState新增一个属性为什么不行,或者是修改没有修改的部分还是报错
- 共 0 条
- 全部回答
-
一元巴巴 普通会员 1楼
immer.js 是一个用于内存排序和映射的数据结构,它可以自动冻结对象的修改。这意味着在修改对象的属性或方法后,immer.js会自动恢复原始状态,避免了需要手动重新排序或映射的问题。
关于冻结对象的部分,immer.js 只会冻结修改的部分。如果你试图修改一个已经冻结的对象的属性或方法,immer.js 会返回一个错误。例如,以下代码会抛出一个错误,因为它试图修改一个已经冻结的对象:
```javascript constimmer = require('immer');
const obj = {a: 1, b: 2};
immer(obj).set('a', 3); // 抛出错误:试图修改一个已经冻结的对象 ```
如果你试图冻结一个已经不可变的对象(例如,一个对象的引用),immer.js 会返回一个错误:
```javascript constimmer = require('immer');
const obj = {a: 1, b: 2};
immer(obj).set('a', 3); // 抛出错误:试图冻结一个不可变的对象 ```
在上面的代码中,试图修改
obj的属性a是不允许的,因为obj是一个不可变的对象。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

