这真是奇怪,因为我已经使用了几个月的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);
答案 0 :(得分:0)
好的,这发生了,因为setState既是异步的,也不保证立即运行。所以我有一些其他代码可以介入其中并首先设置属性。