【发布时间】:2021-05-29 08:04:39
【问题描述】:
我是 React 新手。我正在创建一个自定义菜单栏。对于移动菜单,我有 2 个下拉子菜单。我想通过单击箭头来切换子项。它已经在工作,但是当我单击两个箭头中的任何一个时,两个子项都会打开。我只想打开下一个子项并关闭其他子项(如果它们已经打开)。看我的截图
这里是我的代码:
class Header extends Component {
state = {
mobileNav: false,
submenuToggle: false
};
toggleMobileNav = () => {
this.setState({mobileNav: !this.state.mobileNav});
};
submenuToggle = () => {
this.setState({submenuToggle: !this.state.submenuToggle});
}
render() {
let navClass = ["justify-content-center mainMenu"];
if(this.state.mobileNav) {
navClass.push('showMobileNav');
}
let subMenuClass = ["subMenu"];
let submenuToggleClass = ["submenuToggle"]
if(this.state.submenuToggle) {
subMenuClass.push('showSubMenu');
submenuToggleClass.push("opened");
}
return (
<header className="header-area">
<Container>
<Row>
<Col>
<Navbar bg="light" expand="lg">
<ul className={navClass.join(' ')}>
<li>
<NavLink exact className="nav-link" activeClassName="activeNav" to="/">Home</NavLink>
</li>
<li className="hasSubmenu">
<NavLink exact className="nav-link" activeClassName="activeNav" to="/about-us">About us</NavLink>
<span className={submenuToggleClass.join(' ')} onClick={this.submenuToggle}></span>
<div className={subMenuClass.join(' ')}>
<NavLink exact activeClassName="activeNav" to="/corporate-responsibility">Corporate Responsibility</NavLink>
<NavLink exact activeClassName="activeNav" to="/technical-achievements">Technical Achievements</NavLink>
</div>
</li>
<li className="hasSubmenu">
<NavLink exact className="nav-link" activeClassName="activeNav" to="/products">Products</NavLink>
<span className={submenuToggleClass.join(' ')} onClick={this.submenuToggle}></span>
<div className={subMenuClass.join(' ')}>
<NavLink exact activeClassName="activeNav" to="/classic-heat-transfer-papers">Classic Heat Transfer papers</NavLink>
<NavLink exact activeClassName="activeNav" to="/novelty-transfer-papers">Novelty Transfer papers</NavLink>
</div>
</li>
<li>
<NavLink exact className="nav-link" activeClassName="activeNav" to="/services">Services & Capabilities</NavLink>
</li>
</ul>
</Navbar>
</Col>
</Row>
</Container>
</header>
)
}
}
export default Header;
请帮助我。谢谢!
【问题讨论】:
标签: javascript jquery reactjs navbar