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
调用该方法时,状态都会获得一个新的引用。这意味着原始状态没有新值,而是我们用新值创建了一个新状态。当我们点击第二个按钮时,事件处理函数捕获原始状态的引用。即使我们多次单击第一个按钮,当显示警报时,它也会显示事件处理程序捕获其引用的状态值。
这个对吗?