获取状态中的增量变量

时间:2019-01-17 19:04:38

标签: reactjs

如何在相同的setState中获取增量变量?

我有以下示例

https://codesandbox.io/s/jjj3k80o3y

如您所见,第一个值正确递增,但第二个值落后一个值。 可能增量值与currentIndex的值相同吗?

incrementAction = () => {
    this.setState({
      currentIndex: this.state.currentIndex + 1,
      incrementedIndex: this.state.currentIndex
    });
  };

1 个答案:

答案 0 :(得分:2)

反应setStates被批量处理。它不会一次更新一个属性的状态。

在第二个属性中,您仍在使用状态的旧版本,这就是为什么它不会递增的原因。


顺便说一句,当您使用状态的当前值来计算下一个时,应该使用方法表示法,而不是对象之一:

incrementAction = () => {
  this.setState(prevState => ({
    currentIndex: prevState.currentIndex + 1,
    incrementedIndex: prevState.currentIndex
  }));
};