I have a React-Redux application, and I have created a "Sidebar" component in which I would like to toggle 'active' class onClick of each Menu item.
The current code that I have toggles the 'active' class on all the menu items.
Here is my code:
import React, {Component} from 'react'
import {connect} from 'react-redux'
export default class Sidebar extends Component {
constructor(props) {
super(props)
this.toggleClass= this.toggleClass.bind(this);
this.state = {
activeIndex: false
}
}
toggleClass(e) {
const currentState = this.state.activeIndex;
this.setState({ activeIndex: !currentState });
};
render(){
return(
<div id="sidebar">
<div className="nav">
<ul className="dashboard-menu">
{this.renderSidebarMenuItems}
<li className={this.state.activeIndex ? 'active': null} onClick={this.toggleClass}>Menu item 1</li>
<li className={this.state.activeIndex ? 'active': null} onClick={this.toggleClass}>Menu item 2</li>
<li className={this.state.activeIndex ? 'active': null} onClick={this.toggleClass}>Menu item 3</li>
<li className={this.state.activeIndex ? 'active': null} onClick={this.toggleClass}>Menu item 4</li>
</ul>
</div>
</div>
)
}
}
I need a solution such that onClick of each menu item only that elements class changes to 'active' and all other menu items go back empty class.
Thank you