【问题标题】:How to reset the state value in setState based on its previous value如何根据之前的值重置 setState 中的状态值
【发布时间】:2019-10-21 09:41:37
【问题描述】:

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

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

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

这是我的代码

this.state = {
timerValue: 0,
}

timerValue 取决于我点击的按钮。

这是条件和设置状态的代码

 if(timerValue<1) {
    this.setState({ timerValue, })
 }

我想要发生的事情是重置 timerValue 的值,这取决于按钮变为 0 时的值。

提前感谢您的帮助。

【问题讨论】:

    标签: reactjs


    【解决方案1】:

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

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

    【讨论】:

    • 不行,有没有其他方法可以重置值?
    猜你喜欢
    • 2021-10-31
    • 2022-10-13
    • 2019-09-21
    • 2020-10-28
    • 2019-02-20
    • 2019-11-24
    • 1970-01-01
    • 1970-01-01
    • 2021-12-09
    相关资源
    最近更新 更多