Как определить, что компонент будет обновлен с помощью хуков реакции? - PullRequest
0 голосов
/ 26 мая 2020

Перехватчики React предоставляют возможность mimmi c метод жизненного цикла componentDidUpdate с useEffect без зависимостей:

useEffect(() => {
   // componentDidUpdate
});

Как я могу определить, будет ли какое-то свойство обновляться с помощью перехватчиков реакции?

Необходимо выполнить код прямо перед внесением изменений.

Ответы [ 2 ]

1 голос
/ 26 мая 2020

useEffect без зависимости будет вызываться каждый раз при повторной визуализации компонента. Это похоже на комбинацию componentDidMount и componentDidUpdate

Однако, если вы используете sh для отслеживания определенного изменения c prop, вы можете добавить это к dependency array of useEffect

useEffect(() => {
   // called on change of props.somename as well as initial render
}, [props.somename]);

Также ознакомьтесь с сообщениями ниже для получения дополнительных сведений об эмуляции методов жизненного цикла с помощью useEffect, а также о выполнении useEffect только при обновлении

Перехватчики useEffect только при обновлении?

ReactJS метод жизненного цикла внутри функции Компонент

PS Вы можете добавить более одного значения в массив зависимостей в зависимости от ваших требований

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

Если вы пытаетесь имитировать c поведение componentWillReceiveProps, вы можете легко поместить свой logi c в основной корпус компонента:

function MyComponent(props) {
  // do stuff with props (it's like componentWillReceiveProps)
  return (...);
}

Вам не нужны хуки для этого.

Имейте в виду, что useEffect запускается после вашего компонента с этими реквизитами, а не до .

newProps -> MyComponent is called -> DOM updated -> useEffect called

...