在我的例子中,我面临的问题是,如果没有依赖项数组,计时器怎么会不断更新.
import React, {useEffect, useState} from 'react';
export function App() {
const [count, setCount] = useState(0);
useEffect(() => {
const timerId = setInterval(() => {
setCount(count => count + 1);
}, 1000);
return () => {
clearInterval(timerId);
};
}, []);
return (
<div>
<p>Count: {count}</p>
</div>
);
}
我发现,即使我删除了计时器继续运行的useEffect
的返回中的清理函数,那么清理函数的用途是什么,为什么它在没有实际传递数组的情况下呈现,我怀疑是谁在说useEffect
来重新呈现并将计数的状态更新为+1.