如何根据之前的值在setState中重置状态值

时间:2019-10-21 09:41:37

标签: reactjs

我有一个计时器,计时器的值取决于所单击按钮的值。我将setState放在componentDidUpdate上,以便每当更新状态值时,状态值就会减少1。我为timerValue有3个按钮。

        String sess = "workid_token=" + AppHelper.getCurrSession().getIdToken().getJWTToken() + ";base_token=" + AppHelper.getCurrSession().getRefreshToken().getToken() + ";" + getsess + ";";

问题是我想重置状态值取决于我单击的按钮,例如,当计时器变为0时我单击了5,我希望它返回到状态的前一个值,即5。

这是我的代码

1st button value is 5, 2nd button value is 10, 3rd button value is 15

timerValue取决于我单击的按钮。

这是condition和setState的代码

this.state = {
timerValue: 0,
}

我想发生的事情是重置timerValue的值,具体取决于它何时变为0时按钮的值。

预先感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

使用设置状态回调访问以前的状态。

this.setState(prevState => ({
  timerValue: timerValue === 0 ? prevState.timerValue : timerValue
}))