创建 React 不可变 JS 嵌套状态
Create react immutable JS nested state
我正在尝试将我的一些平面状态设置组合成一个设置状态对象,同时,我想将这个对象转换为一个不可变的 JS 状态对象。
虽然我在构造函数中设置了初始状态,但我的密钥未定义,但我收到错误消息。
这是我目前的情况:
constructor() {
super();
this.state = {
"settings": Immutable.Map()
};
}
然后在componentWillMount中(因为我从外部API获取数据):
componentWillMount() {
/* Some code */
this.setState({
settings: settings.setIn({airlines: Immutable.fromJS(airlines).toList()}),
});
}
我得到的错误是:Uncaught ReferenceError: settings is not defined
顺便说一句。 airlines 元素是一个对象数组
有人可以帮帮我吗?我的方法方向正确吗?一旦首次设置航空公司数组并且我需要更新,我是否需要在之后(更新时)使用 updateIn,还是使用 setIn 更安全?
settings
需要像 this.state.settings.setIn...
一样引用
如错误所述,settings
未在此位置定义。
相反,参考您所在州的 settings
切片:
this.setState({
settings: this.state.settings.setIn({airlines: Immutable.fromJS(airlines).toList()}),
});
编辑:
您还错误地使用了 ImmutableJS 的 setIn
函数:
this.setState({
settings: this.state.settings.setIn(['airlines'], Immutable.fromJS(airlines).toList()),
});
有关详细信息,请参阅 the docs or 。
我正在尝试将我的一些平面状态设置组合成一个设置状态对象,同时,我想将这个对象转换为一个不可变的 JS 状态对象。
虽然我在构造函数中设置了初始状态,但我的密钥未定义,但我收到错误消息。
这是我目前的情况:
constructor() {
super();
this.state = {
"settings": Immutable.Map()
};
}
然后在componentWillMount中(因为我从外部API获取数据):
componentWillMount() {
/* Some code */
this.setState({
settings: settings.setIn({airlines: Immutable.fromJS(airlines).toList()}),
});
}
我得到的错误是:Uncaught ReferenceError: settings is not defined
顺便说一句。 airlines 元素是一个对象数组
有人可以帮帮我吗?我的方法方向正确吗?一旦首次设置航空公司数组并且我需要更新,我是否需要在之后(更新时)使用 updateIn,还是使用 setIn 更安全?
settings
需要像 this.state.settings.setIn...
如错误所述,settings
未在此位置定义。
相反,参考您所在州的 settings
切片:
this.setState({
settings: this.state.settings.setIn({airlines: Immutable.fromJS(airlines).toList()}),
});
编辑:
您还错误地使用了 ImmutableJS 的 setIn
函数:
this.setState({
settings: this.state.settings.setIn(['airlines'], Immutable.fromJS(airlines).toList()),
});
有关详细信息,请参阅 the docs or