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

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

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

14 ответов

24 просмотра

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

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

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

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

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

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
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
Карта сайта