169 похожих чатов

Всем привет, запускаю в компоненте setInterval чтоб получать каждую секунду

новое время, и если в этом же компоненте прописать console.log то он начинает увеличится как на скрине, в чем проблема? или так нельзя устанавливать setInterval?

20 ответов

6 просмотров
Евгений-Волков Автор вопроса

код

Евгений-Волков Автор вопроса
Евгений Волков
код

вставлял console.log на 6 строку

Тебя смущает что консоль лог 7к раз вызвался?

Евгений-Волков Автор вопроса
Геній III сторіччя до н.е.
Тебя смущает что консоль лог 7к раз вызвался?

+ оперативка с временем тоже нагружается из-за этого

Евгений Волков
+ оперативка с временем тоже нагружается из-за это...

Да, правильно, так и будет. Начнём с того, что когда ты меняешь стейт -> происходит ререндер компонента, со всеми вытекающими последствиями.

Евгений Волков
как правильно это можно сделать?

Ну, во-первых, добавь интервалу хотя бы задержку в 1000мс, потому что сейчас у тебя вообще нет задержки. Во-вторых, желательно что бы setInterval находился в useEffect, там же в return-е ты должен ещё и clearInterval делать. Но, если это урок по useState, предполагаю, что вы ещё не проходили это. Из-за чего хотя бы первого пункта должно тебе хватить, что бы память не сжирало лавиной. В интернете должны быть примеры таймеров / часов и т.д.

Евгений Волков
вот так сделал, правильно?

Не совсем, clearInterval в таком случае, по идеи, запустит твой интервал лишь единожды, убери его.

Геній III сторіччя до н.е.
Не совсем, clearInterval в таком случае, по идеи, ...

Неа, он перерендерит компонент и создаст новый, и получится 2 интервала и так в геометрической прогрессии страничка умрёт 👍

Руслан Шайгадамов
Неа, он перерендерит компонент и создаст новый, и ...

Интересно, но разве реакт не должен дождаться, пока выполнится интервал, перед изменением стейта и ререндером? А интервал сам себя удаляет. Тут без песка не разобраться)

Руслан Шайгадамов
Неа, он перерендерит компонент и создаст новый, и ...

Парень setState только учит, вероятно useEffect они не проходили ещё.

Геній III сторіччя до н.е.
сетСтейт же не сразу ререндер запускает

А что это меняет? У нас будут плодиться асинхрорщина из-за чего будет плодиться seState вызовы -> соответственно перерендер

Евгений-Волков Автор вопроса

вроде щас норм, и console.log печатается каждую секунду

Евгений-Волков Автор вопроса
Геній III сторіччя до н.е.
Вы useEffect уже проходили на уроках?

нет, задача должна решится чисто на useState условие

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

Обсуждают сегодня

я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
в сях есть множество как в питоне? для удаление дубликатов
Linus
25
читать файл максимально быстро? странный вопрос))
zamtmn
53
Я хочу запустить свой проект в тг. Что-то между пирамидой и майнилкой. Еще подобного ничего не было. Уникальная идея. Нужен именно не бот, а приложение. С ввод, выводом тон...
Павел А.
6
а как бы вылезти из ИО, что то типа IO -> Ether или в какую сторону смотреть ? что то туплю
Fedor
14
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
How to create an OS in C? what to study?
Linus
18
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Всем доброго вечера! Хочу поделиться своим злоключением с человеком, который, как оказалось сюда тоже скидывал свое резюме. Жаль, что я вашу группу не нашел раньше… человек ки...
Роман Ахмедзянов
4
Реально в одиночку написать игровой движок на Си?
ㅤ (SVO)
11
Карта сайта