@alex_vma

Как правильно использовать таймеры в react?

Суть в том что таймер начинает заедать, и обновлять состояние со скоростью света до бесконечности вместо интервала в 1 секунду, ну и значение доходит до 149 и потом опять с 138. Как правильно написать таймер?
const [state, setState] = useState({val: '138.64573'});

    
        setInterval( () => {
            setState({val: +state.val + 1})
        }, 1000)
  • Вопрос задан
  • 133 просмотра
Решения вопроса 1
Hecc
@Hecc
Frontend. Дизайн. Шрифт.
Использовать его в хуке useEffect.
Вот тут есть хороший разбор: https://overreacted.io/making-setinterval-declarat...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
dimovich85
@dimovich85
https://u-academy.net/
Обычным setInterval такую задачу не решить. Интервал и таймаут дает гарантию, что колбек не запуститься раньше, чем через X миллисекунд, но он не гарантирует, что четко через это время произойдет запуск.
Для оптимизации браузер вообще может вкладку остановить и не выполнять код в ней, если она не в фокусе.
Видео про таймер - тут об этом, правда на английском.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы