Как я могу использовать useEffect в React для запуска некоторого кода только при первом монтировании компонента и некоторого другого кода всякий раз, когда происходит событие (неоднократно)? - PullRequest
3 голосов
/ 07 октября 2019

Если заголовок не ясен, я хочу запустить некоторый код при монтировании компонента и другой код при изменении конкретной переменной. Я мог бы добавить переменную в [], но проблема в том, что я хочу, чтобы какой-то код запускался только один раз, а не при изменении переменной.

К вашему сведению: переменная является свойством окна

Заранее спасибо!

1 Ответ

3 голосов
/ 07 октября 2019

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

Случай 1: когда компонент монтируется

useEffect(
  () => {
    // do something
  },
  [] // no dependency: run once
)

Случай 2: когда переменная изменяется

useEffect(
  () => {
    if (variable) {
      // do something
    }
  },
  [variable] // with dependency: run every time variable changes
)
...