React - setState()不更新叶级属性

时间:2017-06-03 15:06:30

标签: reactjs state reactjs-flux

我正在使用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
        });
    });

它开始正常工作,叶级值相应地改变。为什么会这样?

1 个答案:

答案 0 :(得分:1)

想出来。 我在一个可重复使用的“自定义”输入中保持状态,所以我所写的更改并没有像预期的那样逐渐减少,因为子元素基于它自己的状态。

将状态及其“道具”一直移到最后!

经验教训!总是试图提升你的状态!