【发布时间】:2020-10-24 18:48:30
【问题描述】:
编辑:想通了。我更新了底部的答案
所以我想出了如何在我点击我的图标时将我的班级更改为活动状态,但我不确定每次再次点击时如何将其更改为 false?
class NavbarItems extends Component {
state = { clicked: false}
handleClick = () => {
this.setState({ clicked: true })
}
render() {
return (
<nav className="NavbarItems">
<h1 className="navbar-logo">Startup</h1>
<div className='menu-icon' onClick={this.handleClick}>
<i class="fas fa-bars"></i>
</div>
<ul className={this.state.clicked ? 'nav-menu active' : 'nav-menu'}>
单击菜单图标后,如何将 ul className 改回“nav-menu”?
现在,当我单击它时,它会添加活动类,但我不知道如何在再次单击时删除该活动类
handleClick = () => {
this.setState(clicked => (
{ clicked: !clicked.clicked }
))
}
【问题讨论】:
-
如果
clicked:true的值必须处于活动状态,否则false必须处于非活动状态,因此您应该在每次点击时切换之前的点击状态。所以你需要以前的状态。 setState 在用作函数方式时,会为您提供以前的状态作为参数。该函数必须返回一个将被合并到状态的对象。this.setState( (prevState) => ({ clicked: !prevState.clicked })); -
是的,这正是我在问题的底部提出的。我最终弄清楚并添加了我的答案
标签: reactjs