polyak-888
@polyak-888
Js, React.js, css, frontend

Почему отрабатывает setInterval только один раз?

const [timer, setTimer] = useState(60);

    const startTime = () => {
       setInterval(() => {
           const newTime = timer - 1;
           setTimer(newTime);
           console.log(111)
       }, 1000);
    };


Почему консоль показывается через каждую секунду, а setTimer отрабатывает только один раз?
  • Вопрос задан
  • 123 просмотра
Решения вопроса 1
hzzzzl
@hzzzzl


в коллбеке интервала timer замкнется на своем изначальном значении 60

для таких случаев setTimer может принимать не только новое значение, но и функцию, внутри которой будет текущее значение таймера, и которая будет возвращать новое значение

setTimer(currentTimer => currentTimer - 1)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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