我正在构建一个React应用程序,并使用React路由V6进行路由.在应用程序中,我在顶部有一个导航栏,在应用程序的左侧有一个侧边栏.使用侧栏,我在应用程序中呈现不同的页面(在"screens section container"div中,如下面的代码所示).
我想添加登录页.但它需要全屏.如果只有已登录的用户才能看到导航栏和侧栏.但对于路由v6,我们无法在Routes
中嵌套除Route
或React.Fragment
之外的其他元素.如果我在Navbar
组件标记之外添加了路由,则会出现错误.
如何将登录路径添加到此中?
用户应该首先看到全屏登录页面,成功登录后可以看到NavBar
和Sidebar
.
应用程序代码.tsx像这样,
const App = () => {
return (
<div className="App">
<BrowserRouter>
<Navbar />
<div className="screens-container">
<Sidebar />
<div className='screens-section-container'>
<Routes>
<Route path='/' element={<Home />} />
<Route path='/customers' element={<Customers />} />
<Route path='/products' element={<Products/>}/>
<Route path='/transactions' element={<Transactions />} />
<Route path='/users' element={<Users />} />
</Routes>
</div>
</div>
</BrowserRouter>
</div>
);
}
更新:另一个答案是How do I render components with different layouts/elements using react-router-dom v6