我如何正确地使用IndexRoute在React路由器
How do I correctly use IndexRoute in React Router?
我正在使用React为一个小的web应用程序。它有一个基本的5页网站布局。(Home|About|Contact|Press|Shows)所以我想使用一个只显示菜单、页眉和页脚的应用模板,而{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>
);
}
现在是我的模板:
export default ( props ) => {
return (
<div className="container">
<Header />
<Menu />
{ props.children }
<Footer />
</div>
);
}
我知道有些事情是错误的,b/c没有CSS魔法,a:活动总是HOME和任何其他活动页面。也就是说,如果我点击About,那么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;
对于索引路由,您应该使用IndexLink比较,否则'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>
...
相关文章:
- React重新渲染但未显示正确的组件
- React组件等待所需道具进行渲染
- React中的数据集表示
- Webpack开发服务器和React服务器端渲染
- React Redux错误页面管理
- react.js中的密钥绑定
- 如何在react js中将值从一个组件发送到另一个组件
- React Native通过Navigator将用户输入数据传递到选项卡栏IOS中的组件
- React:按键的性能提升
- 如何在react js中从一个页面导航到另一个页面
- React组件-设置页面标题
- 为react组件传递道具的最佳方式
- 如何使用带有Preact的React路由器
- 使用Jest测试React Native应用程序
- 为什么我的点击事件没有使用 react js 触发
- React 15使用空字符串删除输入值
- react组件中的绑定方法
- 未捕获的ReferenceError:IndexRoute未定义-如何解决此错误以在react路由器中使用IndexRo
- React-Router: IndexRoute的目的是什么?
- 我如何正确地使用IndexRoute在React路由器