【发布时间】:2019-09-26 07:16:40
【问题描述】:
我正在尝试在反应中制作一个切换菜单,该菜单在第一次点击时打开,但在随后的点击中没有任何反应(它应该在第二次点击时关闭),但是在第一次点击之后它不再识别任何点击。
const RightMenu = () => {
const [menuOpen, setMenuOpen] = useState(false);
const handleClick = e => {
const el = document.getElementById("menu");
if (menuOpen === false) {
el.style.display = "block";
setMenuOpen(true);
console.log("menu opened: ");
console.log(el);
}
if (menuOpen === true) {
el.style.display = "none";
setMenuOpen(false);
console.log("menu closed");
console.log(el);
}
};
return (
<div style={style ? style : ""}>
<div
className="text-center"
style={{
borderTopLeftRadius: "10px",
borderTopRightRadius: "10px",
cursor: "pointer",
display: "block"
}}
onClick={e => handleClick(e)}
> Toggle div
</div>
<div className="" id="menu" style={{ display: "none" }}>
menu to show
</div>
);
};
任何帮助将不胜感激。
【问题讨论】:
-
似乎在不更改代码的情况下按预期工作:codesandbox.io/s/optimistic-jang-hwu38
标签: javascript reactjs ecmascript-6