当前位置: 首页 > 知识库问答 >
问题:

为什么react函数执行两次,而控制台只打印一次

归翔
2023-03-14

每个人我最近在学习如何反应。正如这个链接所说,我学到了一个教训:react函数加载两次。但当我验证它时,我发现它确实加载了两次,但Chrome浏览器只打印了一次。我想知道为什么?这是我验证过的代码。

let count = 0;
function App() {
const [state, setState] = useState(1);

count++;
console.log(count);
console.log(`I have run ${count} time(s)!`);
return (
   <div>
     <button onClick={() => setState((e) => e + 1)}>{state}</button>
   </div>
);

我认为铬应该混合。日志

1 App.js: 9我已经跑了1次!2pp.js: 9我已经跑了两次了!

我想知道为什么。非常感谢。

共有1个答案

艾哲
2023-03-14

答案在链接的第二条评论中。发生这种情况是因为它是在并发模式下运行的,以启用并发模式替换ReactDOM。使用ReactDOM进行渲染。createRoot(rootNode)。render()。搜索什么是并发模式,目前正处于开发阶段。在严格模式下也可以看到渲染两次。

 类似资料:
  • 我做了一个简单的组件,当点击按钮时,状态a的数量会增加。 我在组件内部写了来检查它何时呈现。我期望在单击按钮时执行一次,因为组件的状态已更改。 但是,我错了,执行两次。 有什么不对劲吗?还是正确?我错过了什么? 这是我的密码 此应用程序由CRA使用typescript创建。这就是全部。 谢谢。 ****加上****** 我检查了React-dev tools Profiler,以检查在单击按钮并更

  • 问题内容: 我有一个类,我们称它为Cls,其中包含一些值。当我使用声明为的Gson实例并将其用于序列化Cls对象并将结果JSON字符串打印到控制台时,我得到了格式正确的格式,如下所示: 这一切都很好,但是当我然后创建一个JsonWriter(从具有绝对路径的FileWriter)并使用带有Cls 的Gson实例的方法时,生成的文件就不会得到很好的格式化。相反,它看起来像这样: 这打败了漂亮印刷的全

  • react class组件在componentDidMount中调用初始化接口,有些时候会调用两次,通过断点发现顺序是componentDidMount->componentWillUnmount->componentDidMount,但不能稳定复现,调用的组件是页面的主入口,并非某个组件的子组件,请问有知道这个问题的么?

  • 我发现这样的php代码: 我希望这个循环会执行4次,因为$I变成了对$的引用(对吗?)。然而,循环只执行一次,并输出: a=10,i=10 我不明白为什么它会这样工作。有什么想法吗?

  • 我是cython的新手(现在只用于做一点hw)。我使用下面的代码在jupyter笔记本中查看它的总体思路。 但是,它只打印一次结果45。当我运行打印功能时,单元格不会显示45个人。 代码有问题吗?如何使单元格打印出的45与普通python代码完全相同?谢谢

  • 问题内容: 最近升级到Spark 2.0,尝试从JSON字符串创建简单的数据集时遇到一些奇怪的行为。这是一个简单的测试用例: 并输出: 即使我仅执行一项操作,“ map”功能似乎仍被执行两次。我以为Spark会懒惰地建立一个执行计划,然后在需要时执行它,但这似乎使得为了将数据读取为JSON并对其进行任何处理,该计划必须至少执行两次。 在这种简单的情况下,这并不重要,但是当map函数长时间运行时,这