第二个参数可以是引用类型,使用useCallback或者useMemo包一下就可以了。像下面这么写,即使在输入框中进行输入,consoleLog也不会执行,因为consoleLog不会发生改变
function App () {
const [name, setName] = useState('');
const consoleLog = useCallback(() => {
console.log(111);
}, [])
useEffect(() => {
consoleLog();
}, [consoleLog])
return <div>
111
<input value={name} onChange={(e) => {
setName(e.target.value);
}}/>
</div>
}
useEffect第二个参数不能是引用类型react Hocks中的useEffect勾子极大简化了代码,但是又有些副作用,这些副作用用好了提高效率,用不好加班秃头! 结果:页面死循环 解释: useEffect接受...