Я использую 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 в этом случае?