【发布时间】:2021-04-14 22:34:21
【问题描述】:
谁能告诉我这有什么问题以及为什么“视频变量”的状态仍然为假?所以,即使在 h2 元素已经渲染并且可见(即视频变量的状态已更新为 true)之后,当我单击并调用 hideVideo 函数时,视频状态仍然为 false?非常感谢。
export default function App() {
const [message, showMessage] = useState(false);
const [video, setVideo] = useState(false);
let modalTimeout, videoTimeout;
useEffect(() => {
window.addEventListener("click", hideVideo);
setupTimeouts();
return () => {
clearTimeout(modalTimeout);
clearTimeout(videoTimeout);
};
}, []);
const setupTimeouts = () => {
modalTimeout = setTimeout(() => {
showMessage(true);
videoTimeout = setTimeout(() => {
showMessage(false);
setVideo(true);
}, 4000);
}, 2000);
};
const hideVideo = () => {
console.log(video);
showMessage(false);
if (video === true) {
setVideo(false);
}
};
return (
<div className="App">
{message && <h1>Message</h1>}
{video && <h2>Video</h2>}
</div>
);
}
【问题讨论】:
标签: reactjs react-hooks state