【发布时间】:2020-04-17 22:44:09
【问题描述】:
我一直在尝试向用户所在的任何组件添加一个活动类。我不确定如何使用 activeClassName。
JSX 代码:
import React, { Component } from 'react';
import '../css/nav.scss';
import { Link, NavLink } from 'react-router-dom';
import 'react-bootstrap';
class Navbar extends Component {
state = {};
render() {
return (
<nav class="navbar sticky-top navbar-expand-lg">
<Link to="/">
<a class="navbar-brand" href="#">
Web_Env
</a>
</Link>
<button
class="navbar-toggler"
type="button"
data-toggle="collapse"
data-target="#navbarNavDropdown"
aria-controls="navbarNavDropdown"
aria-expanded="false"
aria-label="Toggle navigation"
>
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNavDropdown">
<ul class="navbar-nav mr-auto">
<li class="nav-item">
<a class="nav-link" href="#">
Create post
</a>
</li>
</ul>
<ul class="navbar-nav ml-auto">
<li class="nav-item">
<NavLink to="/login" style={{ textDecoration: 'none' }}>
<a
className="nav-link"
href="#"
activeClassName="nav-link--active"
>
Login
</a>
</NavLink>
</li>
<li class="nav-item">
<NavLink to="/register" style={{ textDecoration: 'none' }}>
<a className="nav-link" href="">
Register
</a>
</NavLink>
</li>
</ul>
</div>
</nav>
);
}
}
export default Navbar;
CSS代码:
$color1: #aceca1;
$bgcolor1: #629460;
.navbar {
background-color: $bgcolor1 !important;
.navbar-brand {
color: lighten($color1, 10%);
font-weight: bold;
font-size: 2em;
}
a.nav-link {
color: $color1;
font-size: 1.1em;
transition: 200ms;
}
a.nav-link .active {
color: white;
font-size: 1.3em;
}
a.nav-link:hover {
color: white !important;
transform: scale(1.1);
text-decoration: none !important;
}
}
如何根据用户所在的页面更改锚标记的样式。例如,如果它们在寄存器中,那么导航栏中的寄存器将是粗体并具有更大的字体。
【问题讨论】:
标签: react-router