条件有效,但由于某种原因,setNavbarOpen(False)不起作用
以下是代码:
import { useState } from 'react';
const Navbar = () => {
const [navbarOpen, setNavbarOpen] = useState(false);
window.addEventListener('click', (e)=> {
e.stopImmediatePropagation()
const navbar = document.querySelector('.navbar')
if (!navbar.contains(e.target)) {
setNavbarOpen(false)
console.log('done')
}
})
return (
<nav className="navbar">
<button
className="toggle"
onClick={() => setNavbarOpen((prev) => !prev)}
>
{navbarOpen ? 'close' : 'open'}
</button>
<ul className={`menu-nav${navbarOpen ? ' show-menu' : ''}`}>
<li>change background</li>
</ul>
</nav>
);
};
export default Navbar;
我希望只要我点击屏幕上的任何地方,就可以关闭导航栏.