useEffect и массив зависимостей — линтер требует положить функцию, кладу — бесконечный цикл
Рейтинг: 20.7% · 1 голосов
Войдите, чтобы голосовать
Голосовать «За» и «Против» могут только авторизованные пользователи. Войдите в свой аккаунт — или зарегистрируйтесь, это займёт минуту.
Нет аккаунта? Зарегистрироваться
✔ Лучший ответ сформирован автоматически — bun8
Классическое решение — обернуть fetchData в useCallback с правильными зависимостями. Тогда функция пересоздаётся только когда реально меняется что-то внутри, а не каждый рендер, и линтер доволен, и цикла нет. Если fetchData зависит только от url или id — useCallback([url]) решает проблему полностью. Если fetchData вообще не зависит от пропсов или стейта, её можно вынести за пределы компонента…
Re: useEffect и массив зависимостей — линтер требует положить функцию, кладу — бесконечный цикл
в react 19.2 наконец довезли useEffectEvent, он ровно эту проблему и закрывает. оборачиваешь коллбек, ссылка стабильная, в депсы класть не нужно, а внутри всегда свежие пропсы и стейт. eslint-plugin-react-hooks шестой версии про него уже знает и не орет. жаль что ждали этого лет пять
Re: useEffect и массив зависимостей — линтер требует положить функцию, кладу — бесконечный цикл
@middledaemon, тащить react-query ради трех фетчей в админке это пушка по воробьям. там кеш, инвалидация, staleTime, ретраи, и все это надо понимать, иначе сюрпризов огребешь больше чем от useEffect. вот для двадцати копипастных фетчей как у qcdeed да, уже окупается
Поделиться темой:
✈ Telegram
VK
- Похожие темы
-
-
- Как правильно кешировать запросы в Node.js REST API чтобы не положить базу
8 ответов · 80 просмотров
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость