首页 > 解决方案 > 反应空 useEffect

问题描述

尽管我使用 React 已经有一段时间了,但我无法弄清楚这一点。为什么空的 UseEffect 会导致组件重新渲染?问题是我得到了两个console.logs。天呐!

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

  }, [])

  console.log('render')

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

标签: reactjsuse-effect

解决方案


EmptyuseEffect订阅了所有组件的 props。

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

AnyuseEffect在第一个组件渲染后至少工作一次。所以你可以像componentDidMount.

如果您componentDidMount只想像这样使用它,则必须传递一个空数组作为第二个参数。

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

订阅特定道具:

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

推荐阅读