【发布时间】:2015-10-07 20:09:37
【问题描述】:
我在组件中有以下代码:
constructor() {
this.state = Immutable.fromJS({
user : {
wasChanged : false,
firstName : false,
lastName : false,
address : {
street : false,
}
}
});
}
onEdit({target: {dataset: {target}}}, value) {
this.setState(function (prevState) {
return prevState.setIn(['user', target], value);
});
}
render() {
var user = this.state.get('user').toJS();
...
}
问题是,当我尝试更新 onEdit 中的值时,我看到 prevState 具有不同的原型集。我不明白为什么或我做错了什么。我在控制台中看到了这个
> Object.getPrototypeOf(this.state)
src_Map__Map {@@__IMMUTABLE_MAP__@@: true}
> Object.getPrototypeOf(prevState)
Object {}
状态改变后,它会去渲染它当然找不到 get 函数或任何来自 Immutable 的东西
将 react 与插件 0.13.3 一起使用。
【问题讨论】:
-
是不是因为它应该是一个带键的简单对象,而不是花哨的 Immutable?
-
您有什么具体原因想使用
immutable?
标签: javascript reactjs immutable.js