Reactjs useMemo正在调用每个渲染函数
我很难让UseMoom在react工作。请看下面非常简单的react应用程序:Reactjs useMemo正在调用每个渲染函数,reactjs,react-hooks,Reactjs,React Hooks,我很难让UseMoom在react工作。请看下面非常简单的react应用程序: import React, { useMemo } from "react"; const testfunc = () => { console.log("testfunc"); return true; }; function App() { const a = useMemo(() => testfunc(), []); return &l
import React, { useMemo } from "react";
const testfunc = () => {
console.log("testfunc");
return true;
};
function App() {
const a = useMemo(() => testfunc(), []);
return <div className="App">My App</div>;
}
export default App;
import React,{usemo}来自“React”;
常量testfunc=()=>{
log(“testfunc”);
返回true;
};
函数App(){
常量a=useMemo(()=>testfunc(),[]);
返回我的应用程序;
}
导出默认应用程序;
您认为“testfunc”应该在控制台中出现多少次?应该是一个,但结果是两个。我做错了什么?让我们检查一下:您是否在其他地方调用了
testfunc
?如果没有,你的价值观就会被记住<当初始化应用程序组件出现以下情况时,代码>testfunc将只调用一次:
让我们检查一下我的示例,只需使用state每1秒重新渲染一次组件
import React, { useMemo, useState } from "react";
const testfunc = () => {
console.log("testfunc");
return true;
};
function App() {
const [state, setState] = useState(false);
const a = useMemo(() => testfunc(), []);
console.log(a);
useEffect(() => {
setInterval(() => setState(!state), 1000);
}, [])
return <div className="App">My App</div>;
}
import React,{usemo,useState}来自“React”;
常量testfunc=()=>{
log(“testfunc”);
返回true;
};
函数App(){
const[state,setState]=使用状态(false);
常量a=useMemo(()=>testfunc(),[]);
控制台日志(a);
useffect(()=>{
设置间隔(()=>setState(!state),1000);
}, [])
返回我的应用程序;
}