如何在循环中更新钩子状态?

时间:2019-10-15 19:03:20

标签: javascript reactjs react-hooks

我有一个状态,并且正在循环更新它。我遇到一个问题,即先前更新的状态没有足够的时间来更新,因此我得到未定义的值。

示例:

Company name | Contact | Position | Email
FooFoo Inc   |    Me   |   ceo    | stuff@ 
FooFoo Inc   |   You   |   ceo    | stuff@   
FooFoo Inc   |  Friend |   ceo    | stuff@
FooFoo Inc   |  Picard |   cto    | stuff@
Pear Co..... etc. 

在第二个项目中,我正在更改电子邮件属性,但希望保持密码属性不变。

const [errors, setErrors] = useState({})

结果最终给了我

  

电子邮件:test1

  

密码:未定义

是否可以像这样更新状态?还是我以错误的方式进行操作?

2 个答案:

答案 0 :(得分:2)

使用export PATH="$PATH:/YOUR_FLUTTER_DIR/flutter/bin" updater的{​​{1}}版本覆盖useState的所有属性

spread

答案 1 :(得分:0)

您可以一次设置一次吗?您不应该在一个钩子中多次调用同一个setState函数

let currentEmail = null;
let currentPassword = null;

for (let i = 0; i < res.length; i += 1) {
  if (i % 2) {
    currentEmail = `test_${i}`;
  } else {
    currentPassword = `test2_${i}`;
  }
}

setErrors({ email: currentEmail, password: currentPassword });