reactjs - react-router-dom > NavLink > 多个activeClassName?
问题描述
是否可以在 NavLink 组件表单 react-router-dom 中有多个 activeClassName?
我有带有 NavLinks 的导航栏,我需要使用 hasActiveClass === true 向元素添加活动类以呈现特定内容。但是当链接处于活动状态时,我还需要另一个活动类(例如“iconActive”)来切换图标。所以代码是这样的:
const MainNavComponent = () => (
<nav className="nav">
{menu.map(
({ ...props }, index) =>
<TileNav key={index} {...props} />
)}
</nav>
);
const TileNav = ({ to, hasActiveClass, exact, img, activeImg }) => {
// this is not working:
const isActive = element.className.contains('active');
const imgSrc = isActive ? activeImg : img;
return (
<NavLink
to={to}
activeClassName={
hasActiveClass ? 'active' : ''
}
className="tile-nav__link"
exact={exact}
>
<div className="tile-nav">
{isActive ? (
<img className="tile-nav__img" src={activeImg} alt="Menu icon" />
) : (
<img className="tile-nav__img" src={img} alt="Menu icon" />
)}
</div>
</NavLink>
)
};
and the data came from there:
const menu = [
{
to: '/',
img: menuAccessIcon,
activeImg: menuAccesActiveIcon,
exact: true,
hasActiveClass: false
},
{
to: urls.someUrl.url,
img: menuSomeIcon,
activeImg: menuSomeActiveIcon,
exact: true,
hasActiveClass: true,
hideForQuasiUser: true
},
{
to: urls.someurl.url,
img: menuSomeIcon,
activeImg: menuSomeActiveIcon,
exact: true,
hasActiveClass: true,
hideForQuasiUser: true
},
{
to: urls.someUrl.url,
img: menuIcon,
activeImg: menuActiveIcon,
exact: true,
hasActiveClass: true
}
];
我还尝试为每个对象添加另一个键: hasActiveIcon: true
进而:
activeClassName={
hasActiveClass ? 'active' : '',
hasActiveIcon && 'activeIcon'
}
但它仍然无法正常工作,因为我在 DOM 中只有第二个活动类 :( 我该如何修复它?
解决方案
您可以通过使用来修复这样的问题template strings
activeClassName={`${hasActiveClass ? "active" : ""} ${hasActiveIcon ? "activeIcon" : ""}`}
推荐阅读
- ios - NSAttributedString 和 Button 的问题
- c++ - 控制语句不好的样式
- angular - 在 Angular 中使用 HTML Urls 加载页眉和页脚
- javascript - 在 setTimeout 函数中更新 vue 数据属性
- c++ - C++ 二次方程求解器 - 不正确的虚解
- .net - 创建用户列表及其角色 DataTable .Net Core 2.1 Razor 页面
- django - 限制
通过 Django 的 linbreaksbr 过滤器生成的标签数量 - python - 使用 Python 3.5 将使用 .read() 获得的 csv 数据复制到 postgresql 数据库
- javascript - 是否可以从附加的 HTML 向函数返回某些内容?
- python - 打印到控制台时如何更改字体系列/样式?