React的setState似乎剥离了一些项目

时间:2017-04-13 13:56:36

标签: reactjs

这真是奇怪,因为我已经使用了几个月的setState,这是我第一次看到这个问题。我有一些代码只是将状态属性设置为另一个对象。在要设置的对象中,我有一个属性是一个名为GroupModel的数组。奇怪的是,一旦在setState中设置了这个对象,属性GroupModel就会被转换为一个对象而我将失去它的成员。我在这个对象中有其他数组属性,它们不受影响。

// just before the call to setState I check newUserGridConfig and find that its child property, 
// GroupModel, is indeed an array and has the expected child elment.
self.setState({ localGridConfig: newUserGridConfig }, () => {

    // once setState completes I check self.state.localGridConfig.GroupModel and 
    // find that it is now an object (i.e. [object Object]). 
    // I then check newUserGridConfig.GroupModel and 
    // it is still an array and has the expected element in it
    var response = self.updateUserGridConfigurationStore(self.state.localGridConfig, 
    saveNetwork);

1 个答案:

答案 0 :(得分:0)

好的,这发生了,因为setState既是异步的,也不保证立即运行。所以我有一些其他代码可以介入其中并首先设置属性。