reactjs - 使用导航栏切换路由器
问题描述
我想在除“介绍”页面之外的每个页面顶部都有一个导航栏。这是正确的方法吗?有更清洁的方法吗?
<BrowserRouter>
<div>
<Switch>
<Route exact path = "/" component = {Introduction} />
<div>
<Navbar/>
<PrivateRoute path = "/main" component = {main} />)
<PrivateRoute path = "/other" component = {other} />)
</div>
</Switch>
</div>
</BrowserRouter>
解决方案
您可以通过执行以下操作来完成此操作:
class App extends React.Component{
render(){
const DefaultRoutes = () => {
return(
<div>
<Navbar/>
<Switch>
<PrivateRoute path = "/main" component = {main} />)
<PrivateRoute path = "/other" component = {other} />)
</Switch>
</div>
)
}
return(
<BrowserRouter>
<div>
<Switch>
<Route exact path = "/" component = {Introduction} />
<Route component={DefaultRoutes}/>
</Switch>
</div>
</BrowserRouter>
)
}
}
export default App
定义一个 DefaultRoutes 函数,其中包括所有具有导航栏的路由。然后将该函数用作 BrowserRouter 中 Route 的组件。不需要导航栏的其他所有内容都可以在其自己的路线中定义,如简介
推荐阅读
- angular - 如何从 S3 存储桶查看图像到我的角度
- kotlin - Kotlin Fuel 增加缓冲区大小
- c++ - 从函数(不是函数中抛出)返回异常以进行消息格式化?
- mysql - 按两列之一对数据库行进行分组
- time-complexity - 当输入加倍以进行合并排序时分析时间复杂度
- firebase - Firestore - 在使用多个项目和多个身份验证时在规则中对用户进行身份验证
- c#-4.0 - 由于 internal 关键字,界面中的可访问性不一致
- jquery - Laravel - 动态输入字段没有保存任何记录
- python - 如何使用子进程捕获输出并允许输出打印到屏幕?
- python - all_world2pix 中的无收敛