gpt4 book ai didi

reactjs - 只需添加 useState 钩子(Hook)语句导致组件重新渲染

转载 作者:行者123 更新时间:2023-12-04 10:15:04 26 4
gpt4 key购买 nike

我创建了一个基本的 创建 react 应用程序并添加了以下语句

const [stateA, setStateA] = useState(false);

我已经在我的组件中放置了一个 console.log。
完整的组件代码是
import React, { useState } from 'react';
import logo from './logo.svg';
import './App.css';

const App = () => {
const [stateA, setStateA] = useState(false);

console.log("rendered");
return (
<div className="App">
<header className="App-header">
<img src={logo} className="App-logo" alt="logo" />
<p>
Edit <code>src/App.js</code> and save to reload.
</p>
<a
className="App-link"
href="https://reactjs.org"
target="_blank"
rel="noopener noreferrer"
>
Learn React
</a>
</header>
</div>
);
}

export default App;

它显示“渲染”两次。任何人都可以说出为什么会这样吗?

最佳答案

如果您注意到 index.js (因为 create-react-app 现在默认使用 React.StrictMode )文件你可能有一个名为 React.StrictMode 的包装器它负责这个额外的重新渲染。包装器将调用 render , constructor和其他生命周期方法来检测副作用。所以这是意料之中的。

你可以在这里阅读更多:https://reactjs.org/docs/strict-mode.html#detecting-unexpected-side-effects

希望这可以帮助!

关于reactjs - 只需添加 useState 钩子(Hook)语句导致组件重新渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61103898/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com