Reactjs 如何在设置超时后修复设置状态

Reactjs 如何在设置超时后修复设置状态,reactjs,Reactjs,我想做这样的循环计时器, 但在放下计时器后,我的计时器冻结了3秒(比如超时时间) componentDidMount(){ const{start,end}=this.state; this.\u loop=setInterval(this.counter,60) } 计数器=()=>{ const{startNumber,endNumber}=this.props; const{start,end}=this.state; 如果(开始){ this.setState({start:startN

我想做这样的循环计时器, 但在放下计时器后,我的计时器冻结了3秒(比如超时时间)

componentDidMount(){
const{start,end}=this.state;
this.\u loop=setInterval(this.counter,60)
}
计数器=()=>{
const{startNumber,endNumber}=this.props;
const{start,end}=this.state;
如果(开始){
this.setState({start:startNumber})
}, 1000);
}
}
timerInterval=null;
_循环=空;
也许反方法写错了?? 我没有发现任何类似的例子,只有控制按钮 如果你有一些推荐信,请与我分享 谢谢


这里我的完整代码

setState是一个异步函数……可能是什么导致了问题?特别是涉及到时间安排。您是否尝试过执行以下操作或类似操作..this.setState(函数(state,props){return{start:state.start+150}})不,我没有。我将尝试相同的结果=(setState是一个异步函数…这可能是导致问题的原因?特别是涉及计时的问题。您是否尝试过执行以下操作或类似操作..this.setState(函数(状态,道具){return{start:state.start+150}})不,我没有。我将尝试相同的结果=(
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;