gre*_*emo 3 reactjs react-hooks use-state
在此示例中,我只是useState使用初始化函数进行调用:
import React, { useState } from "react";
import "./styles.css";
export default function App() {
const [data, setData] = useState(() => {
console.log('Getting initial state...');
return {};
});
return (
<div className="App">
<h1>Hello CodeSandbox</h1>
<h2>Start editing to see some magic happen!</h2>
</div>
);
}
Run Code Online (Sandbox Code Playgroud)
从控制台可以看到,useState函数被调用了两次。这是正常现象,有什么原因吗?
这是由Strict Mode包裹你的App.
在严格模式下,React 会故意运行一些生命周期方法两次以帮助检测错误。
\n来自文档:
\n\n\n严格模式可以\xe2\x80\x99t自动为您检测副作用,但它可以通过使副作用更具确定性来帮助您发现它们。这是通过有意两次调用以下函数来完成的:
\n
\n\n类组件构造函数、render 和 ShouldComponentUpdate 方法\n类组件静态 getDerivedStateFromProps 方法\n函数组件主体\n状态更新器函数(setState 的第一个参数)\n传递给 useState、useMemo 或 useReducer 的函数
\n
\n\n注意:\n这仅适用于开发模式。在生产模式下,生命周期不会被重复调用。
\n
| 归档时间: |
|
| 查看次数: |
908 次 |
| 最近记录: |