Why does this not work as a normal one second counter?
function UseEffectBugCounter() { const [count, setCount] = React.useState(0); React.useEffect(() => { const intervalId = setInterval(() => { setCount(count + 1); console.log(count); }, 1000); return () => clearInterval(intervalId); }, []); return <div>The count is: {count}</div>; } Example: https://codesandbox.io/s/sparkling-rgb-6ebcp
-Is it because of stale closures?
or
-Is it because the count is a state variable and the component would be re-rendered after the state update so a new interval will be created creating some sort of loop?
or
-Is it something else?
I'm looking for a why this occurs in this answer if possible, there are a few different articles stating why it doesn't work (as per above). But none have been able to provide a good argument so far.
