簡體   English   中英

如何在番茄計時器中重設刻度功能?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM