reactjs - 如何用多个切换类名
问题描述
我有多个<li>
并且想将 className="active" 设置为单击的那个。但请记住,我会将 href 调用到不同的路线。现在让我们说所有 li 上的路线都是相同的。
以下是代码:
import React, { Component } from 'react';
class Sidebar extends Component{
render(){
return(
<aside className="main_sidebar">
<ul >
<li title="Home" className="active"><a href="/dashboard"><i className="fa fa-home "></i></a></li>
<li title="Irrigation Pump"><a href="/dashboard"><i className="fa fa-battery-2"></i></a></li>
<li title="Drinking Water"><a href="/dashboard"><i className="fa fa-truck"></i></a></li>
<li title="Patvan"><a href="/dashboard"><i className="fa fa-bicycle"></i></a></li>
<li title="Rooftop"><a href="/dashboard"><i className="fa fa-sun-o"></i></a></li>
</ul>
</aside>
)
}
}
export default Sidebar;
以下 img 显示了应用于<li>
.
谢谢。
解决方案
在这种情况下,您可以使用<NavLink/>
react -router-dom,其中有一个名为activeClassName的道具,这是一个接受CSS ClassName的道具,您想申请一个活动链接,并由 自动管理NavLink
。
这是一个可重用包装组件的示例代码,您可以将链接传递给 has props
import React from 'react';
import { NavLink } from 'react-router-dom';
import classes from './NavigationItem.css';
const navigationItem = ( props ) => (
<li title="Home" className="active">
<NavLink
to={props.link}
activeClassName={classes.active}>{props.children}</NavLink>
</li>
);
export default navigationItem;
可以这样消费
import React from 'react';
import classes from './NavigationItems.css';
import NavigationItem from './NavigationItem/NavigationItem';
const navigationItems = () => (
<aside className="main_sidebar">
<ul className={classes.NavigationItems}>
<NavigationItem link="/" exact>Burger Builder</NavigationItem>
<NavigationItem link="/orders">Orders</NavigationItem>
<NavigationItem link="/Auth">Auth</NavigationItem>
</ul>
</aside>
);
export default navigationItems;
注意:在我的 activeClassName 代码中,我使用的是 CSS 模块,但请随意更改它!
推荐阅读
- java - 这个程序中究竟发生了什么,特别是在 return 语句中?
- node.js - 使用最新节点时 node-sass 出错:stretch docker image
- python - 从另一个线程或进程更新 Gtk.ProgressBar
- python - 如何在 TensorFlow 中使用 Eager Execution 进行保存和恢复?
- javascript - 如何在 Java 中中止文件下载?
- azure - Azure 功能:队列触发器删除消息,但不触发
- wpf - 在功能区内的控件中正确获取图像大小
- android - RxJava2(Android):PublishSubject 只向活动发出一次?
- python - 在python循环中获取href链接和文本
- android - 事件处理在微调器和按钮的角色中扮演什么角色?