React:函数的条件表达式

React: Conditional expression for a function

我在其中一个组件中有以下状态:

this.state = {
   num1: 0,
   num2: 0,
   num3: 0,
   num4: 0,
   num5: 0
}

函数 setNumber() 正在从子组件获取值。该函数需要:

  1. 检查,如果第一个状态为0,则为其赋值(并中断)。如果第一个状态不为 0,则查看第二个状态,如果为 0,则赋值。继续所有 5 个州。
  2. 检查是否有任何状态与函数的值匹配,如果是,则将该状态设置为 0。

你能帮我定义一下这个条件表达式吗?

我假设,这也可以通过 for 循环和状态数组来完成,但无法弄清楚代码。

据我了解,您需要使用 prevState

prevState is a reference to the previous state. It should not be directly mutated. Instead, changes should be represented by building a new object based on the input from prevState.

函数中的 setState 应如下所示

this.setState(prevState => {
  if (prevState.num1 == 0) {
    return { num1: value };
  } else if (prevState.num1 == value) {
    return { num1: 0 };
  } else if (prevState.num2 == 0) {
    return { num2: value };
  } else if (prevState.num2 == value) {
    return { num2: 0 };
  } else if (prevState.num3 == 0) {
    return { num3: value };
  } else if (prevState.num3 == value) {
    return { num3: 0 };
  } else if (prevState.num4 == 0) {
    return { num4: value };
  } else if (prevState.num4 == value) {
    return { num4: 0 };
  } else if (prevState.num5 == 0) {
    return { num5: value };
  } else if (prevState.num5 == value) {
    return { num5: 0 };
  }
  return {};
});