Reactjs 如何在设置超时后修复设置状态
我想做这样的循环计时器, 但在放下计时器后,我的计时器冻结了3秒(比如超时时间)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
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;