我的React组件由于严格模式而渲染两次

问题描述 投票:0回答:2

我的React组件渲染两次。因此,我决定进行逐行调试,问题就在这里

 if ( workInProgress.mode & StrictMode) {
        instance.render();
      }

React-dom.development.js

是因为采用严格模式吗?我可以禁用它吗?什么是严格模式?我需要吗?

reactjs react-dom
2个回答
0
投票

是,您必须将严格模式删除为

严格模式无法为您自动检测副作用,但是通过使它们更具确定性,它可以帮助您发现它们。这是通过有意地双重调用以下函数来完成的:类组件的Constructor,render和shouldComponentUpdate方法。


0
投票

您无法使用ES6模块语法真正地“删除”(或禁用)严格模式。您可以使用CommonJS require()禁用严格模式。正如@Haris指出的那样,解决此问题的唯一方法是从字面上禁用“严格模式”。

© www.soinside.com 2019 - 2024. All rights reserved.