setTimeout之后如何修复setState

时间:2019-05-22 06:58:16

标签: reactjs

我想制作一个https://imgur.com/dbTKWgO这样的循环计时器, 但是放下计时器后会冻结3秒钟(如超时时间)

componentDidMount() {
    const { start, end } = this.state;

    this._loop = setInterval(this.counter, 60)
}

counter = () => {
    const { startNumber, endNumber } = this.props;
    const { start, end } = this.state;

    if (start <= endNumber) {

        this.setState({start: this.state.start + 150})            
    } else {
        this.timerInterval = setTimeout( () => {
            this.setState({start: startNumber})
        }, 1000);
    }
}

timerInterval = null;
_loop = null;

也许计数器方法写错了? 而且我没有发现任何类似的示例,仅使用控制按钮 如果您有参考,请与我分享 谢谢。

这里是我的完整代码https://codepen.io/liashok/pen/OYOKyZ

0 个答案:

没有答案