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

Всем привет. С праздником! Праздничный вопрос )) const

history = useHistory();

useEffect(() => {
где то внутри исспользую history
},[ ]);

соответственно получаю
ESLint: React Hook useEffect has a missing dependency: 'history'. Either include it or remove the dependency array.(react-hooks/exhaustive-deps)

подскажите ,плз, как правильно это обработать?

19 ответов

19 просмотров

Не верить слепо правилам, а где надо отключать

svarozich- Автор вопроса

да я вообще не прописывался зависимости в которых был уверен, но вот решил поправить и не очень то знаю как хук в хуке обработать

не надо никакой хук в хуке обрабатывать. тебе тут линтер говорит, чтобы ты зависимости добавил. если уверен, что они там не нужны. напиши // eslint-disable-next-line react-hooks/exhaustive-deps перед строкой с массивом зависимостей у тебя внутри эффекта используется history значит. и линтер хочет чтобы ты пересчитывал все в зависимости от него.

ололошка ты что ли?

не спрячешься от вас нигде)

плохо прячешься)

svarozich- Автор вопроса

это понятно, но мне интересно есть ли возможность не пересчитывать и при этом не отменять правила

не даст так линтер сделать, если это правило определено в нем. или отключать совсем. или локально. или делать как он просит)

да лан. я и не прятался) просто ливнул из одного чата. в этих то всегда и был)

svarozich- Автор вопроса

( печалько

ну я оттуда откуда ты ливнул)

я понял по вопросу)) только там такой ник был. разобрался со счетчиком своим?

да, но почему интервал нужно определять с рефом - не особо... как по мне, классовый компонент намного проще в оборщении по крайней мере на данном этапе...

тут прикол вот в чем, когда ты заводишь интервалы у тебя создается новый объект. так? в классах ты явно говорил, this.чтото. здесь у тебя это уже новый объект. чтобы остновить его - нужно передать его в clearInterval. но ... при изменении пропсов или стейта вызывается снова твоя функция. снова создается новый интервал. и так далее... поэтому ты не сможешь стопнуть старый. поэтому нужен реф который указывает на таймер

можешь здесь уточнить, какой объект создается при дефайне интервала?

ты имеешь ввиду что после изменения стейта в функциональном компоненте, компонент перерисовывается, и у перерисованного компонента нет доступа к интервалу который живет в компоненте который был перед перерисовкой?

идентификатор таймера возвращается при вызове setInterval если точнее.

ну типа того. каждое изменение стейта вызывает рендер. каждый вызов рендера это вызов функции. вызов фунции - инициализация. идентификатор таймера ты никак не сохранял. поэтому и не стопалось ничего. создавались просто бесконечные интервалы)

понял, спасибо

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта