I'm currently creating a multilevel sidebar menu in REACT and I want to dynamically add active class to parent <li>
when the current route is active.
The code below is how I do it for a single menu.
<Route
path={this.props.to}
exact={this.props.activeOnlyWhenExact}
children={({ match }) => (
<li className={match ? "active" : ""}>
<Link to={this.props.to} activeClassName="active">
<span className="sidebar-mini-icon">
<i className={this.props.icon}></i></span>
{this.props.label}
</Link>
</li>
)}
/>
Now I wonder how I do it with multilevel menu. My menu looks like this;
As you can see, only the menu has the active class. Here's my code for the multi level menu:
<Route
path={this.props.to}
exact={this.props.activeOnlyWhenExact}
children={({ match }) => (
<li>
<a data-toggle="collapse" href="#Collapse">
<span className="sidebar-mini-icon">
<i className={this.props.icon}></i>
</span>
<span className="sidebar-normal">
{this.props.name}
<b className="caret"></b>
</span>
</a>
<div class="collapse" id="Collapse">
<ul className="nav">
{this.props.children}
</ul>
</div>
</li>
)}
/>
I'm using React Router. Any help will be appreciated. Thank you.