当我点击GeneralNav中的菜单时,我成功地在true或false之间切换。
此menuState再次通过HomePage成功传递给Overlay。
尽管我不能在Overlay中切换正确的类来隐藏或显示菜单。有人能给我解释一个正确的工作流程来在我的EasyFlexCol组件上添加类来显示或隐藏它吗?已经被困了一段时间了。
谢谢!
class GeneralNav extends Component {
render() {
return (
<div
className="nav-burger-box menu-action"
onClick={this.props.toggleMenu}
>
<div className="nav-burger-top" />
<div className="nav-burger-bottom" />
</div>
);
}
}
class HomePage extends Component {
state = {
showMenu: false
};
toggleMenu = e => {
e.preventDefault();
this.setState(state => ({ showMenu: !state.showMenu }));
};
render() {
return (
<React.Fragment>
<OverlayMenu menuState={this.state.showMenu}/>
<HeaderFullscreen />
</React.Fragment>
);
}
}
class OverlayMenu extends Component {
state = {
showMenu: "overlay-menu-wrapper bg-color-dark overlay-menu-wrapper display-block",
hideMenu: "overlay-menu-wrapper bg-color-dark overlay-menu-wrapper"
};
render() {
let menuState = this.props.menuState
console.log(menuState)
return (
<EasyFlexCol style={"here I want to add the right class to show or hide the overlay menu"}>
</EasyFlexCol>
);
}
}
发布于 2019-05-24 11:16:59
你可以像这样使用三元运算:
即如果menuState为真,则显示showMenu,反之亦然
<EasyFlexCol className={menuState ? showHide.showMenu : showHide.hideMenu}>
</EasyFlexCol>
下面是供您参考的工作示例:https://stackblitz.com/edit/react-wj49ol
https://stackoverflow.com/questions/56284083
复制相似问题