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

Вопрос. У меня подключен линтер. Почему при использовании useEffect, или

как в данном примере useCallback он просит поместить в массив зависимостей функции. Это нормально? Если да, то для чего это вообще нужно? Не хочется во всем проекте городить
// eslint-disable-next-line react-hooks/exhaustive-deps

14 ответов

21 просмотр

если удалишь пустой массив как зависимость, то эта ошибка останется?

Антон- Автор вопроса
Александр Плетнев
если удалишь пустой массив как зависимость, то эта...

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

Да, я такое уже видела. Он требует все изменяемые данные чтобы записались в зависимости

The issue is that upon each render cycle, function is redefined. React uses shallow object comparison to determine if a value updated or not. Each render cycle function has a different reference https://stackoverflow.com/questions/62601538/passing-a-function-in-the-useeffect-dependency-array-causes-infinite-loop

Антон- Автор вопроса
Антон
Немного мимо

вопрос был в том почему линтер просит поместить в массив функцию, в ссылке есть ответ

Антон- Автор вопроса
𝚕𝚞𝚜𝚝
вопрос был в том почему линтер просит поместить в ...

В этом вопросе разбирается, почему создается бесконечный цикл при передаче функций в массив зависимостей useEffect

Антон
В этом вопросе разбирается, почему создается беско...

ну я ещё специально выделил текст с ответом на твой вопрос, чтоб было понятно к чему ссылка

Антон- Автор вопроса
𝚕𝚞𝚜𝚝
ну я ещё специально выделил текст с ответом на тво...

Предположим, в моем случае сохраняется ссылка на диспатч данных в useState. Что-то должно поменяться, если этого сохранения не будет?

если не сохраняется, то на каждый рендер создаётся новая ссылка на функцию, соответственно эффект будет каждый раз запускаться

Антон- Автор вопроса
𝚕𝚞𝚜𝚝
если не сохраняется, то на каждый рендер создаётся...

Ты может путаешь поведение, когда в массиве зависимостей само значение из useState? Иначе почему мы во всех массивах зависимостей не указываем эти функции для изменения стейта?

Антон
Ты может путаешь поведение, когда в массиве зависи...

потому что нам не нужно реагировать на переопределение ссылки на функцию эффект как и usecallback/usememo в зависимостях ожидает все значения из пропсов/стейтов/функций которые используются в колбэке, когда ты туда ничего не передаешь линтер предупреждает тебя что что-то может пойти не так, ну или выводит ошибку, зависит от настроек

Антон
Ты может путаешь поведение, когда в массиве зависи...

дока ESLint is not smart enough to understand the context everytime, it's a set of objective measurements. If you want to run something once, guaranteed, use an empty dependency array and suppress the warning. It's a warning, not an error. https://stackoverflow.com/questions/73296654/is-an-empty-dependency-array-for-react-useeffect-not-permissible

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

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

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Ребят в СИ можно реализовать ООП?
Николай
33
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Карта сайта