由于setState是异步工作的,因此它不会立即更新状态。如何在循环中更新状态变量。
功能是验证多个字段,并存储字段值是否对特定行索引有效。然而,由于状态变化不会立即反映出来,所以我没有收到所需的输出。
请提出处理此问题的最佳方法。
你是对的。。setState
异步工作。因此,除了在代码块的末尾之外,在循环内或任何地方多次调用它都没有意义。也不是最佳实践。
因此,您可以做的是,在循环之前定义一个状态变量的副本。在循环中对这个变量执行任意操作。最后,您只需使用此更新的变量更新一次状态即可。
这样,您就不必多次使用setState
,还可以从伪变量获得循环内的更新状态。
使用ref存储数据并在最后更新状态已经解决了这个问题。