当我使用类组件时,我有代码:
setTimeout(() => console.log(this.state.count), 5000);
Run Code Online (Sandbox Code Playgroud)
当我使用钩子时:
const [count, setCount] = useState(0);
setTimeout(() => console.log(count), 5000);
Run Code Online (Sandbox Code Playgroud)
如果我触发setTimeout然后count在超时 ( 5000ms)之前将更改为 1 ,类组件将console.log(1)(最新值),并且useState是console.log(0)(注册超时时的值)。
为什么会发生这种情况?