我正在尝试修改 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(现在是匿名的)上运行?
还有其他“更好”的可能性来修改所有嵌套元素的属性吗?
最佳答案
是的,有 -
state = state.map((todoItem)=>todoItem.set("completed", true));
关于javascript - 不可变的js修改所有嵌套记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36196747/