Почему именованная функция передается в качестве 1-го параметра для useEffect, не являющейся необходимой зависимостью? - PullRequest
0 голосов
/ 29 мая 2020

Я считаю, что 2 эффекта ниже должны иметь одинаковый эффект. Но почему правило eslint не жалуется во втором случае?

Это должна быть обязательная зависимость в обоих случаях, поскольку doSomething может изменить и изменить эффект.

Ответы [ 2 ]

0 голосов
/ 29 мая 2020

Второй аргумент для useEffect - это массив зависимостей, в котором вы можете описать, что эффект должен запускаться, если заданные значения изменены. Во втором случае функция doSomething не является тем, что эффект использует , а это сама функция эффекта .

Если вы используете его внутри своей функции эффекта, eslint уведомит об этом.

useEffect(() => {
  doSomething();
}, []);
0 голосов
/ 29 мая 2020

useEffect не должен возвращать значение, кроме функции очистки.

например:

useEffect(() => {
  return () => {}
}, [])

А вы используете doSomething, который был указан вне хука , внутри крючка useEffect.

...