【发布时间】:2020-09-30 04:34:16
【问题描述】:
上下文
我正在为我的应用程序设计一个导航栏,我的项目使用 react-router 和 react-router-dom 来管理路由和 react-icons 用于图标检索。
代码
import React from 'react';
import { NavLink } from 'react-router-dom';
import { MdAssessment } from 'react-icons/md'
import Styles from './NavBar.module.css'
const NavBar = (props) => {
return (
<nav className={Styles.navBar}>
{navIcon}
<NavLink
activeStyle={{ color : 'red' }}
className={`${Styles.navBar__Dashboard} `}
exact to="/">
<MdAssessment />
</NavLink>
<NavLink
activeStyle={{ color: 'red' }}
className={Styles.navBar__Requests}
to="/requests">
Requests
</NavLink>
<NavLink
activeStyle={{ color: 'red' }}
className={Styles.navBar__Tasks}
to="/tasks">
Tasks
</NavLink>
</nav>
)
}
export default NavBar
问题
我正在尝试将 NavLink 的 activeStyle 功能外推到我的图标。 鉴于 react-icons 为您提供了作为图标的组件,我正在为应该使用哪种方法而苦苦挣扎:
- 我应该用 HOC 包裹吗?
- 我应该封装在自定义 Hook 中吗?
注意事项
我已经尝试了这两种方法,但无法理解它。我尝试在使用 useLocation 钩子读取 location 时实现 useRef、useEffect。 考虑到这种情况,有什么建议可以更好地实现通用 NavIcon 功能?
【问题讨论】:
-
我刚刚在我的沙盒上测试了 react-icons,你可以在这里看到它codesandbox 并且图标采用了活动颜色。也许问题出在你的 CSS 上。
-
是的,我知道。我可以从父亲那里继承一些属性(如果不是全部的话)。我在这里的问题是尝试提供与其父组件完全不同的样式。我实际上尝试通过使用额外的道具传递图标组件,但感觉不对
-
对不起,我误解了这个问题。
标签: reactjs react-router react-icons