我在React中有一个不可变状态,我有一个包含列表元素的地图。
我的getIn函数正常工作,例如:
console.log(this.state.settings.getIn(["airlines"])[index].checked);
但我想反过来更新这个值。
阅读不可变JS的文档,它应该是这样的,但由于我的索引键,我无法使它工作,因为我的更新val应该在()内。
我现在所拥有的是这样的:
this.state.settings.updateIn((["airlines"])[index].checked, val => !val);
感谢任何帮助!
答案 0 :(得分:0)
您需要将路径更新为属性作为数组。 Demo
this.state.settings.updateIn(['airlines', index, 'checked'], val => !val);
BTW同样适用于getIn
。你可以做到
console.log(this.state.settings.getIn(['airlines', index, 'checked']));