使用对象

时间:2016-07-20 12:50:07

标签: reactjs immutable.js setstate

我在React中有一个不可变状态,我有一个包含列表元素的地图。

我的getIn函数正常工作,例如:

console.log(this.state.settings.getIn(["airlines"])[index].checked);

但我想反过来更新这个值。

阅读不可变JS的文档,它应该是这样的,但由于我的索引键,我无法使它工作,因为我的更新val应该在()内。

我现在所拥有的是这样的:

this.state.settings.updateIn((["airlines"])[index].checked, val => !val);

感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

您需要将路径更新为属性作为数组。 Demo

this.state.settings.updateIn(['airlines', index, 'checked'], val => !val);

BTW同样适用于getIn。你可以做到

console.log(this.state.settings.getIn(['airlines', index, 'checked']));