![](/img/trans.png)
[英]React Router: How to redirect to a different component when a link/button is clicked?
[英]React Router: Redirect to a different component
登陆页面上有两个主要链接,然后当用户单击该选项时,它应该重定向到该组件,而不是在同一页面中呈现下面的组件。
但是,该组件不是转到下一页,而是像导航栏一样显示在下方。
const MainRoutes = () => {
return (
<ReactRouterDOM.HashRouter>
<div className='routes'>
<nav>
<ul>
<li>
<Link to='/team-member'>Team Member</Link>
</li>
<li>
<Link to='/moderator'>Moderator</Link>
</li>
</ul>
</nav>
<Route path='/team-member' component={TeamMember} />
<Route path='/moderator' component={Moderator} />
</div>
</ReactRouterDOM.HashRouter>
);
};
const App = () => {
return (
<div className='app'>
<MainRoutes />
</div>
);
};
您需要将路由包装在Switch中:
<Switch>
<Route exact path='/team-member' component={TeamMember} />
<Route exact path='/moderator' component={Moderator} />
</Switch>
当Switch
呈现与该位置匹配的第一个子<Route>
时。 此外,它专门呈现一条路线(您需要)。
如果您不想在其他组件上显示NavBar
,而只想在 index route /
上显示,您可以这样做:
const MainRoutes = () => {
return (
<HashRouter>
<div className="routes">
<Switch>
<Route exact path="/" component={NavBar} />
<Route exact path="/team-member" component={TeamMember} />
<Route exact path="/moderator" component={Moderator} />
</Switch>
</div>
</HashRouter>
)
}
导航栏:
function NavBar() {
return (
<nav>
<ul>
<li>
<Link to="/team-member">Team Member</Link>
</li>
<li>
<Link to="/moderator">Moderator</Link>
</li>
</ul>
</nav>
)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.