到目前为止,我看到了两种处理切换的方法
首先,根据之前的状态设置状态
export default function App() {
const [show, setShow] = useState(false);
const handleClick = () => {
setShow(s => !s);
};
return (
<div>
<div>show: {String(show)}</div>
<button onClick={handleClick}>BTN</button>
</div>
);
}
Run Code Online (Sandbox Code Playgroud)
其次,直接将状态作为参数传递
export default function App() {
const [show, setShow] = useState(false);
const handleClick = () => {
setShow(!show);
};
return (
<div>
<div>show: {String(show)}</div>
<button onClick={handleClick}>BTN</button>
</div>
);
}
Run Code Online (Sandbox Code Playgroud)
哪一个是正确的?根据我的理解,第二个可能不起作用,因为设置状态是异步的,如果我多次单击按钮,它可能无法获得正确的状态