Reactjs 生命周期方法在初始渲染和重新渲染阶段被调用两次
当我在每个生命周期方法中调用console.log()时,在Chrome控制台中,我看到每个方法都被调用了两次Reactjs 生命周期方法在初始渲染和重新渲染阶段被调用两次,reactjs,Reactjs,当我在每个生命周期方法中调用console.log()时,在Chrome控制台中,我看到每个方法都被调用了两次 因此,我创建了一个新的React应用程序。并在render中执行了console.log()。它在初始渲染时仍会被调用两次 我试着在stackoverflow上找到答案,但是他们通过编写脚本解决了这个问题,这不是一个解决方案。因为,即使它们可以显示渲染被调用一次,它实际上在后台被调用两次 --我卸载了节点visual studio。清除所有残留物。然后重新安装。我还是没能解决这
- 我会非常感激的。提前谢谢
要在react中删除不必要的渲染,可以对类组件使用
PureComponent
,对功能组件使用react.memo()
这将检查道具的更改,并在道具更改时重新渲染组件。这在父级经常触发不影响子级的状态更改时非常有用。请检查您的index.js,如果您的App.js被包装在
中,那么它将调用生命周期挂钩两次
要解决问题,只需从
打开App.js即可
index.js
ReactDOM.render(
<App />, document.getElementById('root'));
ReactDOM.render(
而且
由于您没有对组件装载执行任何异步操作,而且此处也没有传递任何道具,因此我怀疑父组件可能是原因。请尝试检查父组件是否也在重新提交。
Person.js:6 [Person.js] constructor1
Person.js:7 [Person.js] constructor2
Person.js:6 [Person.js] constructor1
Person.js:7 [Person.js] constructor2
Person.js:10 [Person.js] render1
Person.js:11 [Person.js] render2
Person.js:10 [Person.js] render1
Person.js:11 [Person.js] render2
ReactDOM.render(
<App />, document.getElementById('root'));