不可变的js修改所有嵌套的记录
immutable js modify ALL nested records
我正在尝试修改OrderedMap的所有记录的"已完成"属性。这是有序地图:
const TodoItem = Record({text: '', completed: false});
let state = OrderedMap({'0': new TodoItem({text: 'First Item'})});
我当前的代码是:
state.forEach((v,k) => {
state = state.updateIn([k.toString(),'completed'], completed => true);
});
return state;
这是有效的,但是怎么做呢?
它是否工作是因为状态是不可变的,并且在第一次迭代后,forEach在第一个状态obj上运行,而obj现在是匿名的?
是否还有其他"更好"的可能性来修改所有嵌套元素的属性?
是的,有-
state = state.map((todoItem)=>todoItem.set("completed", true));
相关文章:
- 用嵌套函数和默认函数定义函数
- 如何在ReactJS JSX中执行嵌套的if-else语句
- 可以简化嵌套的延迟Q Promises解析吗
- 用于搜索的聚合物嵌套绑定
- 如何使用javascript获取嵌套对象中所有子对象的单个属性
- d3中堆栈函数和嵌套函数之间的差异
- 如何打印嵌套对象的所有值
- JavaScript 中的嵌套函数和 “this” 关键字
- 设置嵌套对象属性的更好方法
- querySelector/getElementByClassName嵌套项的顺序
- 猫鼬在特定记录中查找嵌套记录
- 访问嵌套JSON对象的键,其中键是动态的
- D3嵌套组作为x轴
- 不可变的js修改所有嵌套的记录
- 如何将新项推送到不可变JS中的深度嵌套记录中
- 使用嵌套条件记录字符串
- Ember中嵌套2层的嵌入记录
- 当更改嵌套值时,记录上的订阅不会触发
- 访问嵌套MySQL查询中的父记录
- Sails.js+Mongodb使用ORM插入嵌套的json记录