Задать вопрос

Хук useEffect, как использовать реквизит, но не обновлять его?

Я использую useEffectловушку для запуска некоторых действий, когда компонент монтируется.

Вот код:

useEffect(() => {
    onChange(
      bar1 ? graphData.displayedItems[bar1.value] : null,
      bar2 ? graphData.displayedItems[bar2.value] : null,
      by ? byOptions[by.value] : null
    )
  }, [])


Этот код работает нормально, но я получаю предупреждение:

Строка 54: React Hook useEffect не имеет зависимостей: 'bar1', 'bar2', 'by', 'byOptions' и 'graphData.displayedItems'. Либо включите их, либо удалите массив зависимых реактив-хуков / исчерпывающий-deps

Я не хочу добавлять их в массив зависимостей, потому что таким образом он будет запускаться каждый раз, когда один из этих реквизитов обновляется. И я просто хочу запустить один раз, когда компонент монтируется.

Есть ли способ избавиться от предупреждения, не добавляя их в массив зависимостей?

Я знаю, что это предупреждение может быть перезаписано конфигурацией ESLint. Но я не хочу этого; Я хочу правильное решение. Если React добавил это предупреждение, должно быть решение для этого.

Я учусь использовать крючки. Это действительно? Должен ли я использовать componentDidUpdate в этом случае?
  • Вопрос задан
  • 166 просмотров
Подписаться 2 Средний 1 комментарий
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    React-разработчик
    3 месяца
    Далее
  • Merion Academy
    Frontend-разработка на React
    4 месяца
    Далее
  • ProductStar
    React: отточите навыки интерфейсной разработки
    6 недель
    Далее
Решения вопроса 1
rockon404
@rockon404 Куратор тега React
Frontend Developer
Если React добавил это предупреждение, должно быть решение для этого.

Это предупреждение добавляет ESLint. Если не хотите отключать правило глобально, то можно воспользоваться комментариями для отключения в конкретном блоке.

ESLint: Disabling Rules with Inline Comments
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
от 250 000 до 300 000 ₽
IT ATLAS Москва
от 200 000 до 250 000 ₽