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

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

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

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

Войти через центр авторизации
Похожие вопросы