Задать вопрос
@justifycontent

Может ли useEffect работать по-другому?

Можно ли сделать так, чтобы хук useEffect работал также, как и метод жизненного цикла componentDidUpdate?
componentDidUpdate выполняется строго ТОЛЬКО после ОБНОВЛЕНИЯ компонента(После первого монтирования он не выполняется, как оно и должно быть.), а useEffect после первого монтирования компонента и далее, после каждого его обновления. Т.е. через useEffect нельзя отследить конкретно обновление? Он еще и первое монтирование отслеживает в добавок к обновлениям, это неудобно. Что делать если я хочу отследить только обновление при использовании функционального компонента и хуков?

React.useEffect(() => {
      console.log('[system] Компонент обновлен')
    })


Это не сработает.

Может быть я пока не понимаю чего-то, я только начал изучать React. Буду благодарен за объяснение.
  • Вопрос задан
  • 72 просмотра
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
@asdasdqwe
const isInitialMount = useRef(true);

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

https://stackoverflow.com/questions/55075604/react...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы