在React docs中,我发现此组件应该只渲染两次:
function Users() {
const [count, setCount] = useState(0);
console.log("---: " + count)
useEffect(() => {
console.log("useEffect")
const id = setInterval(() => {
console.log("setCount: " + (count + 1))
setCount(count + 1); // This effect depends on the `count` state
}, 1000);
return () => clearInterval(id);
}, []); // ? Bug: `count` is not specified as a dependency
return <h1>{count}</h1>;
}
尝试运行先前的组件,您将在可见this logs的位置将组件重新渲染3次。因此,即使 setState 返回了相同的值,也会发生一次不必要的渲染(只有一次,但仍然如此)。有人可以解释一下吗?