[英]In React JS I'm trying to create a countdown timer but can't get the first second to be a full second
我在componentDidMount内部使用间隔为1000毫秒的setInterval,这意味着,取决于用户何时按下提交按钮输入倒数时间,倒数的第一秒可能需要1毫秒至1000毫秒。 这是有问题的代码:
minusOne() {
if(this.state.time > 0){
this.setState({time: this.state.time -1});
}
}
componentDidMount(){
setInterval(() => this.minusOne(), 1000);
}
关于如何使第一秒始终花费1000ms的任何想法? 谢谢
只需按一下按钮击中间隔而不是componentDidMount
。
onSubmit() {
...
// remove any previous interval (noop for undefined handle)
clearInterval(this.state.countdownIntervalHandle);
this.setState({countdownIntervalHandle: setInterval(...)});
}
必要时不要忘记将clearInterval
添加到componentWillUnmount
。
使用setTimeout将倒计时强制为1000ms。
componentDidMount(){
setTimeout( setInterval( () => this.minusOne(), 1000), 1000);
};
wonkledge
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.