【发布时间】:2018-12-14 12:44:38
【问题描述】:
这是一个有效的代码:
const AppRouter = () => (
<BrowserRouter>
<div>
<Header />
<Switch>
<Route path="/" component={DashboardPage} exact={true} />
<Route path="/:id" component={ViewerPage} /> // <-- Exclude Header component from this page
<Route path="/create" component={CreatePage} />
<Route path="/edit/:id" component={EditPage} />
<Route path="/help" component={HelpPage} />
<Route component={NotFoundPage} />
</Switch>
</div>
</BrowserRouter>
);
export default AppRouter;
我似乎无法弄清楚如何从 ViewerPage 组件页面中排除 Header 组件。有没有办法做到这一点?
【问题讨论】:
-
用某些条件包装
<Header />组件... -
@Rayon,看起来怎么样?
-
类似
URL === SOMETHING ? null : <Header /> -
组件在什么条件下出现/不出现?
-
仅在一条特定路线上排除它?
{location.pathname !== '/route-to-exclude-header' && <Header />}如果你想在多个路由上排除,请创建一组排除路径,然后{exclusionArray.indexOf(location.pathname) > 0 && <Header/>}使用react-router包提供的withRouterHoC 将location注入到您的组件中。
标签: javascript reactjs react-router