Задать вопрос
  • Как сделать что таймер не сбрасывался а продолжал работать?

    @Eugene_Zhukov
    Front
    я не спец на реакте, больше во vue разбираюсь
    но тут 2 варианта либо localStorage, либо date.now()

    первый вариант сложно расписать, поэтому извини)

    но второй я использовал примерно вот так
    handleStart = (event) => {
      event?.stopPropagation();
      const startTime = Date.now();
      const { min, sec } = this.state;
      this.setState({ 
        isCounting: true, 
        startTime,
        remainingTime: min * 60 + sec 
      });
    
      this.counterID = setInterval(() => {
        const elapsedTime = Math.floor((Date.now() - startTime) / 1000);
        const remainingTime = Math.max(0, this.state.remainingTime - elapsedTime);
        const newMin = Math.floor(remainingTime / 60);
        const newSec = remainingTime % 60;
    
        this.setState({ min: newMin, sec: newSec });
        
        if (remainingTime === 0) {
          this.handlePause();
          this.props.onCheckBoxClick();
        }
      }, 1000);
    };


    Не забудь очищать, не помню как в реакте точно это называлось componentwillUnmount что-ли ()=>{clearInterval(this.counterIdD)}
    Ответ написан