Реагировать на пустой useEffect - PullRequest
1 голос
/ 28 марта 2020

Несмотря на то, что я работаю с React в течение некоторого времени, я не могу понять это. Почему пустой UseEffect вызывает повторную визуализацию компонента? Дело в том, что я получаю два console.logs. Tnx!

function App() {
  useEffect(() => {

  }, [])

  console.log('render')

  return (
    <h1>Hello world</h1>
  );
}

1 Ответ

0 голосов
/ 28 марта 2020

Пустой useEffect подписан на все реквизиты компонента.

useEffect(() => console.log('rerendered due to new props'));

Любой useEffect работает как минимум один раз после рендеринга первого компонента. Таким образом, вы можете использовать его как componentDidMount.

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

useEffect(() => console.log('after first render'), []);

Подписаться c реквизит:

useEffect(() => console.log(' after first render or message updated', props.message), [props.message]);
...