Хук 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 в этом случае?
  • Вопрос задан
  • 86 просмотров
Решения вопроса 1
rockon404
@rockon404 Куратор тега React
Frontend Developer
Если React добавил это предупреждение, должно быть решение для этого.

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

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

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

Войти через центр авторизации
Похожие вопросы
Ultimate Guitar Минск
от 1 000 до 5 000 usd.
Enapter Санкт-Петербург
от 180 000 до 240 000 руб.
21 авг. 2019, в 00:43
500 руб./за проект
21 авг. 2019, в 00:14
1000 руб./за проект