React-хуки используют, влияют только на обновление? - PullRequest
12 голосов
/ 09 марта 2019

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

useEffect(() => {
  // ...
}, []);

Но как заставить useEffect работать только тогда, когда обновляется компонент, кроме первоначального монтирования?

1 Ответ

21 голосов
/ 09 марта 2019

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

const isInitialMount = useRef(true);

useEffect(() => {
  if (isInitialMount.current) {
     isInitialMount.current = false;
  } else {
      // Your useEffect code here to be run on update
  }
});
...