【发布时间】:2019-12-18 15:23:17
【问题描述】:
我创建了一个移动菜单,每次我在桌面上显示导航时它都会消失。我正在使用与为导航链接之一创建下拉列表相同的 JS 效果。我不希望导航在每次单击时消失。
如何让导航出现在桌面屏幕上?
以下代码:
import React from 'react';
import { Link } from 'react-router-dom';
import Dropdown from '../dropdowns/dropdown.js';
import hamburger from "../images/menu.svg";
class MobileDropdown extends React.Component {
constructor(){
super();
this.state = {
displayMenu: false,
};
this.showDropdownMenu = this.showDropdownMenu.bind(this);
this.hideDropdownMenu = this.hideDropdownMenu.bind(this);
};
showDropdownMenu(event) {
event.preventDefault();
this.setState({ displayMenu: true }, () => {
document.addEventListener('click', this.hideDropdownMenu);
});
}
hideDropdownMenu() {
this.setState({ displayMenu: false }, () => {
document.removeEventListener('click', this.hideDropdownMenu);
});
}
render() {
return (
<div className="FlexContainer NavbarContainer">
<div className="mobilecontainer LeftNav">
<h2 className="BrandName LeftNav mobileboxmenu inline">Kommonplaces</h2>
<div className="hamburger inline" onClick={this.showDropdownMenu}><img alt="menubtn" src={hamburger}></img></div>
</div>
{ this.state.displayMenu ? (
<>
<ul className="NavBar">
<Dropdown/>
<li className="RightNav"><Link to="/">Host Your Space</Link></li>
<li className="RightNav"><Link to="/">About Us</Link></li>
<li className="RightNav"><Link to="/">Contact Us</Link></li>
<li className="RightNav"><Link to="/">Sign Up</Link></li>
<li className="RightNav"><Link to="/">Login</Link></li>
</ul>
</>
):
(
null
)
}
</div>
);
}
}
export default MobileDropdown;
【问题讨论】:
标签: javascript reactjs