我正在使用react和basic flux来做一个数据输入网络应用程序。 所以我有一个与商店通信的根组件,获取类似this的复杂数据对象。
在更改选项select元素时,我会触发一个动作,该动作会使另一个相关对象具有与上面相似的结构。
我将这个庞大的对象作为数据输入页面的根状态进行管理,并将数据作为道具传递给各种组件。
此对象的叶级别,我已将其绑定到Input元素。所以当对象改变时它会改变。所有这些变化都从根组件的以下状态更改中逐渐消失。
MeasurementStore.getAllMeasurements().then((measurements) => {
this.setState({
measurements : measurements
});
});
但在我的情况下,叶级别的值不会对应于状态更改而更改。但是当我添加以下内容时
MeasurementStore.getAllMeasurements().then((measurements) => {
this.setState({
measurements : {}
});
this.setState({
measurements : measurements
});
});
它开始正常工作,叶级值相应地改变。为什么会这样?
答案 0 :(得分:1)
想出来。 我在一个可重复使用的“自定义”输入中保持状态,所以我所写的更改并没有像预期的那样逐渐减少,因为子元素基于它自己的状态。
将状态及其“道具”一直移到最后!
经验教训!总是试图提升你的状态!