import React, { useState } from "react";
import ReactDOM from "react-dom";
function App() {
const [count, setCount] = useState(0);
function handleAlertClick() {
return (setTimeout(() => {
alert("You clicked on: " + count);
}, 3000))
}
return (
<div>
<p>You clicked {count} times</p>
<button onClick={() => setCount(count + 1)}>Click me</button>
<button onClick={handleAlertClick}>Show alert</button>
</div>
);
}
我只是想知道这个是否按照我想的那样工作,或者是否有更好的解释!
无论何时调用setState
方法,状态都会获得一个新的引用。这意味着原始状态没有新值,而是创建了一个具有新值的新状态。当我们点击第二个按钮时,事件处理程序函数捕获了原始状态的引用。
即使我们多次点击第一个按钮,当警报被显示时,它将显示事件处理程序捕获其引用的状态的值。
这正确吗?