您可以将
handleKeyUp函数放在给定的函数内部,
useEffect并且仅添加侦听器,并且在
collapsed为false 时返回清除函数。
useEffect(() => { if (!collapsed) { function handleKeyUp(event) { switch (event.key) { case "Escape": setCollapsed(true); break; } } window.addEventListener("keyup", handleKeyUp); return () => window.removeEventListener("keyup", handleKeyUp); }}, [collapsed]);


