在React JS中我尝试创建一个倒数计时器,但不能让第一秒成为一整秒

时间:2018-01-29 00:09:33

标签: javascript reactjs

我在componentDidMount中使用setInterval,间隔为1000毫秒,这意味着根据用户点击提交按钮输入倒计时的时间,倒计时的第一秒可能需要1毫秒到1000毫秒。以下是有问题的代码:

minusOne() {
  if(this.state.time > 0){
    this.setState({time: this.state.time -1});
  }
}

componentDidMount(){
  setInterval(() => this.minusOne(), 1000);
}

关于如何获得第一秒的任何想法总是需要1000毫秒?感谢

2 个答案:

答案 0 :(得分:0)

只需按下按钮而不是componentDidMount启动间隔。

onSubmit() { 
  ...
  // remove any previous interval (noop for undefined handle)
  clearInterval(this.state.countdownIntervalHandle); 
  this.setState({countdownIntervalHandle: setInterval(...)});
}

如有必要,请勿忘记将clearInterval添加到componentWillUnmount

答案 1 :(得分:0)

使用setTimeout强制倒计时1000毫秒。

recover()

wonkledge