Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript useState |未设置新状态的useEffect会导致额外的重新渲染_Javascript_Reactjs - Fatal编程技术网

Javascript useState |未设置新状态的useEffect会导致额外的重新渲染

Javascript useState |未设置新状态的useEffect会导致额外的重新渲染,javascript,reactjs,Javascript,Reactjs,我找不到任何信息,为什么要调用两次此渲染 const测试:React.FC=()=>{ const[myState,setMyState]=useState(); 控制台日志(“渲染测试”); 回归试验; }; 当我移除 const[myState,setMyState]=useState(); 然后该组件只渲染一次 Useffect也会发生同样的情况: const测试:React.FC=()=>{ useffect(()=>{ 控制台日志(“组件安装”); }, []); 控制台日志(“渲

我找不到任何信息,为什么要调用两次此渲染

const测试:React.FC=()=>{
const[myState,setMyState]=useState();
控制台日志(“渲染测试”);
回归试验;
};
当我移除

const[myState,setMyState]=useState();
然后该组件只渲染一次

Useffect也会发生同样的情况:

const测试:React.FC=()=>{
useffect(()=>{
控制台日志(“组件安装”);
}, []);
控制台日志(“渲染测试”);
回归试验;
};

如果没有useEffect,渲染只调用一次。

这是由于React的StrictMode导致的,以便检测任何问题并希望您了解这些问题。它只在开发中运行,不在生产中运行。在index.js中的应用程序中,您会发现应用程序的组件是用React.StrictMode组件包装的。您可以通过React的StrictMode(严格模式)了解更多有关它的信息,以便检测任何问题并让您了解它们。它只在开发中运行,不在生产中运行。在index.js中的应用程序中,您会发现应用程序的组件是用React.StrictMode组件包装的。您可以阅读更多有关它的信息

可能的重复