REACT,即使状态是数字,setInterval 仍会返回 NAN

REACT, setInterval keeps returning NAN even though state is a number

我对反应很陌生,我正在尝试创建一个倒数计时器,但是,当我调用 setInterval 函数 onClick 时,我的状态变为 NAN 并且不会递减,即使初始状态是数

  interval = () => {
    this.myInterval = setInterval(() => {
      this.setState(({seconds}) => ({
        second: parseInt(seconds) - 1
      }))
    }, 1000)
  }
          <button onClick={this.interval} className="start">START</button>

确保您的状态变量设置为大于 0,并且您应该在状态值为 0 时停止间隔,或者只是从 setState 中删除 parseInt,这样它就不会产生任何问题.

还有一件事你没有在 setState 中使用 this.state.seconds 因为您在 parseInt 方法中提到的变量在没有 this.state

的情况下无效
this.state = { second: 0 }

interval = () => { this.myInterval = setInterval(() => { this.setState({second: this.state.seconds - 1}) }, 1000)}

你打错了,你正在从 seconds 递减(NaN 的来源不存在)并将值设置为 second.