[英]How do I reset the tick function in my pomodoro timer?
我正在ReactJS中開發Pomodoro風格的計時器。 我已經為工作計時器和中斷計時器編寫了代碼,但是,一旦中斷計時器變為0,它將自動再次啟動工作計時器。 我該如何重設流程並讓用戶再次單擊開始以使工作計時器運行。 下面是我擁有的tick()
函數的代碼,但是一旦中斷計時器結束,它仍然在中斷之后重新開始。 不知道我在做什么錯,任何幫助表示贊賞!
tick() {
const timerType = this.state.workTimer ? "work" : "break";
if(this.state[timerType+"Time"]*60 - Math.round(this.state.elapsed / 1000) <= 0) {
clearInterval(this.ticker);
this.setState({
workTimer: !this.state.workTimer,
startTime: new Date()
});
this.ticker = setInterval(this.tick, 1000);
}
this.setState({
elapsed: new Date() - this.state.startTime
});
if(this.state[timerType+"break"]*60 - Math.round(this.state.elapsed / 1000) <= 0) {
clearInterval(this.ticker);
this.setState({
elapsed: null
});
}
}
看起來像您休息后再次啟動計時器的第一個條件。 您可以先添加workTimer簽入,例如statmen。
if(this.state[timerType+"Time"]*60 - Math.round(this.state.elapsed / 1000) <= 0 && this.state.workTimer) {}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.