我不知道为什么会出现这些结果。 这是我的代码。
import React, { useState } from "react";
export function Main() {
const [val, setVal] = useState(0);
const onClosure = () => {
setTimeout(() => {
console.log(`before = ${val}`);
setVal(val + 1);
console.log(`inside = ${val}`);
}, 1000);
};
console.log(`outside = ${val}`);
return (
<React.Fragment>
<div>{val}</div>
<div>hi!!</div>
<div>good</div>
<button onClick={onClosure}>click me</button>
</React.Fragment>
);
}
在过时的关闭问题中,当我非常快速地多次单击按钮时,总是只有 2 次重新渲染工作,但是 setTimeout() 中的内部语句被正确调用。我不知道为什么。请澄清这个问题..谢谢!!
这是我的结果img(我看不懂):