好的,有些事我不理解了:
onDateChange(child, performUpdate){
console.log("child", child, child.state);
}
正如你所看到的,从debugeur,国家有一些价值。但是当我尝试访问它们时,它们的行为就像它们未初始化的那样。就像setState毕竟不是原子操作一样...
实际上我没有任何想法,因为它似乎反直觉。 有人可以帮助我从回调中获取数据。 js / reactjs中的每个操作都与预期的操作不同。 那是因为'州'财产在另一个领域并且是重复的吗?我找不到这种奇怪行为的任何合理原因。
修改:
所以看起来setState是异步的。最糟糕的是,非原子操作。这有点奇怪,他们在文档中没有提到它(相反,他们说不直接使用状态,而是通过方法调用。为什么?因为他们在不告诉客户端的情况下在另一个线程中进行更改!!!)。
所以这就是我遇到并发问题的方法。 这种问题有一个干净的方法吗?就像所有操作完成时对setState方法的回调一样(有些人使用延迟或内联函数,绝对不能解决问题)。
为了解决我的问题,我不得不使用一个代理模式,其中有一个数据结构独立于显示它的视图,并且就像它是同一个对象一样。这样控制器就不必处理所有这些'后台'线程操作的混乱。 (注意:数据结构不是模型,而是只读对象)。