Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

197
Vistas
¿Cómo ir por una ruta específica sin renderizar algunos componentes en React?

Estoy usando react-router-dom v6. Quiero que mi página de inicio de Login se muestre sin los componentes Sidebar y Topbar . ¿Cómo hacerlo?

 function App() { return ( <Router> <Container> <Sidebar /> <Content> <Topbar /> <MainContent> <Routes> <Route path="/" element={<Home />} /> <Route path="/users" element={<UserList />} /> <Route path="/users/:id" element={<User />} /> <Route path="/newUser" element={<NewUser />} /> <Route path="/products" element={<ProductList />} /> <Route path="/products/:id" element={<Product />} /> <Route path="/newProduct" element={<NewProduct />} /> <Route path="/login" element={<Login />} /> </Routes> </MainContent> </Content> </Container> </Router> ); }

No quiero que mi página de inicio de sesión se muestre dentro de MainContent sino que tome toda la página sin Sidebar y Topbar .

Intenté mover las Routes hacia arriba y tengo la route de inicio de sesión sobre la barra lateral, pero hay un error Error: [Sidebar] is not a <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Dado que SideBar y TopBar parecen ser parte de un "diseño", y desea un "diseño" diferente específicamente para "/ iniciar sesión", sugiero abstraer los componentes del contenedor en componentes de diseño. Cada contenedor de diseño debe generar un Outlet para sus respectivas rutas anidadas.

 const AppLayout = () => ( <Container> <Sidebar /> <Content> <Topbar /> <MainContent> <Outlet /> </MainContent> </Content> </Container> ); const LoginLayout = () => ( <Container> <Content> <MainContent> <Outlet /> </MainContent> </Content> </Container> );

...

 function App() { return ( <Router> <Routes> <Route path="/" element={<AppLayout />}> <Route index element={<Home />} /> <Route path="users" element={<UserList />} /> <Route path="users/:id" element={<User />} /> <Route path="newUser" element={<NewUser />} /> <Route path="products" element={<ProductList />} /> <Route path="products/:id" element={<Product />} /> <Route path="newProduct" element={<NewProduct />} /> </Route> <Route path="/login" element={<LoginLayout />}> <Route index element={<Login />} /> </Route> </Routes> </Router> ); }
about 4 years ago · Juan Pablo Isaza Denunciar

0

function App() { return ( <Router> <Container> { Login || <Sidebar /> } <Content> { Login || <Topbar /> } <MainContent> <Routes> <Route path="/" element={<Home />} /> <Route path="/users" element={<UserList />} /> <Route path="/users/:id" element={<User />} /> <Route path="/newUser" element={<NewUser />} /> <Route path="/products" element={<ProductList />} /> <Route path="/products/:id" element={<Product />} /> <Route path="/newProduct" element={<NewProduct />} /> <Route path="/login" element={<Login />} /> </Routes> </MainContent> </Content> </Container> </Router> ); }

prueba el renderizado condicional. ¡Esto funciona para mi!

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda