【发布时间】:2022-01-22 18:43:53
【问题描述】:
我很难理解 useEffect 的工作原理。就像下面的代码, setInterval 中的 count1 将始终为 0,并且 useEffect 永远不会到达 count2。 这意味着,在第一次渲染之后,useEffect 运行并且它进入 setInterval 并且永远不会离开,那么 h1 中的计数如何仍然得到更新?如果它永远不会脱离 useEffect。我认为状态更改总是会触发重新渲染,从而触发另一个 useEffect。也许我错过了一些东西。请帮忙。谢谢!
import { useState, useEffect } from "react";
import ReactDOM from "react-dom";
function Timer() {
const [count, setCount] = useState(0);
useEffect(() => {
setInterval(() => {
setCount((count) => count + 1);
console.log("count1" + count);
}, 1000);
console.log("count2" + count);
}, []);
return <h1>I've rendered {count} times!</h1>;
}
export default Timer;
【问题讨论】:
标签: reactjs state setinterval use-effect