【问题标题】:useState | useEffect without setting new state casues additional rerender使用状态 |不设置新状态的 useEffect 会导致额外的重新渲染
【发布时间】:2020-09-12 05:13:38
【问题描述】:

我找不到任何信息为什么这个渲染被调用了两次?

const Test: React.FC = () => {
  const [myState, setMyState] = useState();

  console.log("RENDER TEST");
  return <div>test</div>;
};

当我删除时

const [myState, setMyState] = useState();

那么组件只渲染一次。

useEffect 也是如此:

const Test: React.FC = () => {
  useEffect(() => {
   console.log("Component mounted");
  }, []);

  console.log("RENDER TEST");
  return <div>test</div>;
};

如果没有 useEffect,渲染只会被调用一次。

【问题讨论】:

标签: javascript reactjs


【解决方案1】:

这是由于 React 的 StrictMode 来检测任何问题并希望您了解它们。它仅在开发中运行,而不在生产中运行。在您的 index.js 应用程序中,您会发现您的 App 组件被 React.StrictMode 组件包裹。你可以阅读更多关于它https://reactjs.org/docs/strict-mode.html

【讨论】:

    猜你喜欢
    • 2022-12-21
    • 1970-01-01
    • 2020-06-20
    • 1970-01-01
    • 2020-10-19
    • 1970-01-01
    • 1970-01-01
    • 2021-04-24
    • 1970-01-01
    相关资源
    最近更新 更多