Mar*_*rco 5 css router reactjs react-router
我正在学习React Router并遵循本教程, 除了突出显示活动NavLink的问题外,一切都很清楚并且按照指示工作(谢谢作者).
看一下css文件并注意.current类:
nav ul {
list-style: none;
display: flex;
background-color: black;
margin-bottom: 20px;
}
nav ul li {
padding: 20px;
}
nav ul li a {
color: white;
text-decoration: none;
}
.current {
border-bottom: 4px solid white;
}
Run Code Online (Sandbox Code Playgroud)
当我加载应用程序时,导航中的主页链接以白色底部边框线突出显示,但即使我点击"关于"链接或"联系人"链接,它也会保持突出显示.我一步一步地遵循了一切,但这个问题我无法弄清楚.
在阅读了关于NavLink的反应文档和在线的许多教程之后,仍然不知道如何修复它.
这是教程路由示例的方式
<nav>
<ul>
<li><NavLink exact activeClassName="current" to='/'>Home</NavLink></li>
<li><NavLink exact activeClassName="current" to='/about'>About</NavLink></li>
<li><NavLink exact activeClassName="current" to='/contact'>Contact</NavLink></li>
</ul>
</nav>
Run Code Online (Sandbox Code Playgroud)
请注意Home链接如何与其下的活动白线保持一致,尽管它不再是活动链接.
添加activeClassName ="current"假设突出显示带有白色下划线的当前视图,但主页链接保持以白色下划线突出显示.
所以,对于那些有多年经验的人,请帮忙.
这是我的app.js
import React, { Component } from 'react';
import './App.css';
import Main from './components/main';
import Navigation from './components/navigation';
class App extends Component {
render() {
return (
<div>
<h1> React Router </h1>;
<h5> import 'BrowserRouter' from 'react-router-dom' in Appjs</h5>
<hr></hr>
<Navigation />
<Main />
</div>
);
}
}
export default App;
Run Code Online (Sandbox Code Playgroud)
这是我的index.js
import React from 'react';
import ReactDOM from 'react-dom';
//Add browserrouter to use it in your app
import { BrowserRouter } from 'react-router-dom';
import './index.css';
import App from './App';
import * as serviceWorker from './serviceWorker';
//this router example is from this site
//https://blog.pusher.com/getting-started-with-react-router-v4/
/*
You can only pass a single child element to a Router,
so it is necessary to create a root component
that renders the rest of your application and
then pass that in as the child of the Router.
*/
ReactDOM.render((
<BrowserRouter>
<App />
</BrowserRouter>
), document.getElementById('root'));
Run Code Online (Sandbox Code Playgroud)
这是我的main.js
import React, { Component } from 'react';
import { NavLink, Switch, Route } from 'react-router-dom';
import Home from './home';
import About from './about'
import Contact from './contact'
class Main extends Component {
render() {
return (
<div>
<p> My main component </p>
<Switch>
<Route exact={true} path='/' component={Home}></Route>
<Route path='/about' component={About}></Route>
<Route path='/contact' component={Contact}></Route>
</Switch>
</div>
);
}
}
export default Main;
Run Code Online (Sandbox Code Playgroud)
最后这是我的navigation.js
import React, { Component } from 'react';
import { NavLink } from 'react-router-dom';
class Navigation extends Component {
render() {
return (
<div>
<p> My Navigation component </p>
<nav>
<ul>
<li><NavLink to='/'> Home </NavLink> </li>
<li><NavLink to='/about'> About </NavLink> </li>
<li><NavLink to='/contact'> Contact </NavLink> </li>
</ul>
</nav>
</div>
);
}
}
export default Navigation;
Run Code Online (Sandbox Code Playgroud)
Sak*_*oBu 14
改为:
import React, { Component } from 'react';
import { NavLink } from 'react-router-dom';
class Navigation extends Component {
render() {
return (
<div>
<p> My Navigation component </p>
<nav>
<ul>
<li><NavLink to='/' activeClassName="current" exact={true}> Home </NavLink> </li>
<li><NavLink to='/about' activeClassName="current"> About </NavLink> </li>
<li><NavLink to='/contact' activeClassName="current"> Contact </NavLink> </li>
</ul>
</nav>
</div>
);
}
}
export default Navigation;
Run Code Online (Sandbox Code Playgroud)
您应该将该exact属性添加到您的 root("") 路由,否则,它将匹配以“”开头的每个路由,React Router 精确
例如:
<Route exact path="/" component={Home} />
<Route path="/about" component={About} />
<Route path="/topics" component={Topics} />
Run Code Online (Sandbox Code Playgroud)
更新:
在没有确切属性的情况下,更改顺序也将具有相同的效果
<Route path="/about" component={About} />
<Route path="/topics" component={Topics} />
<Route path="/" component={Home} />
Run Code Online (Sandbox Code Playgroud)
在路由器交换机旁边,它将转到第一个匹配的路由,如果我们/在开头添加带有路径的路由,它将始终渲染路径中的组件,最好避免使用顺序进行精确修复
| 归档时间: |
|
| 查看次数: |
1591 次 |
| 最近记录: |