Jos*_*ell 5 javascript ecmascript-6 reactjs react-router
我正在使用React作为一个小型的网络应用程序.它有一个基本的5页网站布局.(主页|关于|联系|按|显示)所以我想使用一个只显示菜单,页眉和页脚的应用程序模板,{props.children}它将是React Router的路径组件.为此,我使用了以下代码.假设所有进口都在那里......
这是我的路由器代码:
export default (props) => {
return (
<Router history={ hashHistory }>
<Route path="/" component={ Template }>
<IndexRoute component={ Home }></IndexRoute>
<Route path="about" component={ About }></Route>
<Route path="music" component={ Music }></Route>
<Route path="store" component={ Store }></Route>
<Route path="shows" component={ Shows }></Route>
<Route path="contact" component={ Contact }></Route>
</Route>
</Router>
);
}
Run Code Online (Sandbox Code Playgroud)
现在这是我的模板:
export default ( props ) => {
return (
<div className="container">
<Header />
<Menu />
{ props.children }
<Footer />
</div>
);
}
Run Code Online (Sandbox Code Playgroud)
我知道有些事情是错的,b/c没有CSS魔术,a:主动总是在HOME和任何其他活动页面.如果我点击关于IE,那么Home和About都是活动的.我怎样才能正确使用索引路由,或者我是否应该在这个简单的应用程序中使用索引路由?如果没有,那么我怎样才能使用我所拥有的模板,并以不同的方式将页面作为组件传递?
更新:这是我的Menu.js文件...
const Menu = () => {
return (
<div>
<nav>
<Link activeClassName="nav-active" to="/">Home</Link>
<Link activeClassName="nav-active" to="about">About</Link>
<Link activeClassName="nav-active" to="music">Music</Link>
<Link activeClassName="nav-active" to="shows">Shows</Link>
<Link activeClassName="nav-active" to="store">Store</Link>
<Link activeClassName="nav-active" to="contact">Contact</Link>
</nav>
<hr className="line" />
</div>
);
}
export default Menu;
Run Code Online (Sandbox Code Playgroud)
对于索引路由,您应该使用IndexLink comp,否则"Home"将始终处于活动状态
import {Link,IndexLink} from 'react-router';
<IndexLink activeClassName="nav-active" to="/">Home</IndexLink>
<Link activeClassName="nav-active" to="about">About</Link>
<Link activeClassName="nav-active" to="music">Music</Link>
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2999 次 |
| 最近记录: |