【发布时间】:2020-10-29 13:22:47
【问题描述】:
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 方法时,状态都会获得一个新的引用。这意味着原始状态没有新值,而是我们创建具有新值的新状态。当我们单击第二个按钮时,事件处理函数会捕获原始状态的引用。即使我们多次单击第一个按钮,当显示警报时,它也会显示事件处理程序捕获其引用的状态值。
这是正确的吗?
【问题讨论】:
-
你遇到了什么问题?
-
我只是问我所了解的是否正确!每当调用 setState 方法时,状态都会获得一个新的引用。这意味着原始状态没有新值,而是我们创建具有新值的新状态。当我们单击第二个按钮时,事件处理函数会捕获原始状态的引用。即使我们多次单击第一个按钮,当显示警报时,它也会显示事件处理程序捕获其引用的状态值
标签: javascript reactjs closures use-state