Задать вопрос
@supkiler

Почему при нажатии на таймер он не останавливается?

timer = (id) =>{
  const xid = this.state.todo.findIndex((el) => el.id === id);
    const oldItem = this.state.todo[xid]
      if(!oldItem.time){
        this.interval = setInterval(() => {
      
          if (oldItem.sec < 59) {
            oldItem.sec++;
          } else {
            oldItem.sec = 0;
            oldItem.min++;
          }
    
          this.setState(({ todo }) =>{
            const newItem = {...oldItem,
              min: oldItem.min,
              sec: oldItem.sec,
              time: true,
              }
              const newstate = [
                ...todo.slice(0,xid),
                newItem,
                ...todo.slice(xid + 1)
              ]
              return {
                todo: newstate
              }
          });
        }, 1000);
      }
    
}
stopTimer = (id) =>{
  const xid = this.state.todo.findIndex((el) => el.id === id);
    const oldItem = this.state.todo[xid]
    console.log(oldItem.time)
    if(oldItem.time){
      clearInterval(this.interval);
    }
  
  
    this.setState(({ todo }) =>{
      const newItem = {...oldItem,
        time: !oldItem.time,
        }
        const newstate = [
          ...todo.slice(0,xid),
          newItem,
          ...todo.slice(xid + 1)
        ]
        return {
          todo: newstate
        }
    });
}


код фигня но работает почти , только таймер не останавливается когда нажимаю второй раз 678d1044ac01f177319051.png678d104d69338358455135.png
  • Вопрос задан
  • 31 просмотр
Подписаться 1 Простой 3 комментария
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы