我试图修改已完成的' OrderedMap的所有记录的属性。这是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运行,现在是匿名的?
还有其他更好的'修改所有嵌套元素的属性的可能性?
答案 0 :(得分:1)
是的 -
state = state.map((todoItem)=>todoItem.set("completed", true));