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

91
Vistas
Encabezado común de React 6.4.0 para todo el enrutador

Estoy comenzando un proyecto de reacción con la versión 6.4.0 react-router-dom , pero no puedo crear un encabezado común para todas las rutas.

App.js: este es el archivo donde estoy agregando RouterProvider

 import logo from './logo.svg';
import './App.css';
import { Link, Outlet, RouterProvider } from "react-router-dom";
import { routers } from "./routes/routes";

function App() {
 return (
 <RouterProvider router={routers}>
 <div>Header</div>
 <Outlet />
 </RouterProvider>
 );
}

export default App;

route.js - En este archivo voy a crear todas las rutas

 import { createBrowserRouter, redirect } from "react-router-dom";
import About from "../pages/About/About";
import Home from "../pages/Home/Home";
import { getUser, isAuthenticated } from "../sso/authUtil";

const authLoader = () => {
 if (!isAuthenticated()) {
 return redirect("https://google.com");
 } else {
 return getUser();
 }
};

export const routers = createBrowserRouter([
 {
 path: "/",
 element: <Home />,
 loader: authLoader,
 },
 {
 path: "/about",
 element: <About />,
 },
]);

Home.js: este archivo es la página de inicio que tendrá los enlaces a otras páginas junto con el encabezado

 import React from "react";
import { Link, Outlet, useLoaderData } from "react-router-dom";

const Home = () => {
 const loaderData = useLoaderData();

 return (
 <>
 <div>Header</div>
 <Link to="/">Home</Link>
 <Link to="/about">About</Link>
 <div>Home: {loaderData}</div>{" "}
 <Outlet />
 </>
 );
}
 
export default Home;

About.js - Es un componente normal que dice acerca de

 import React from "react";

const About = () => {
 return <div>About</div>;
};

export default About;

Quiero que tanto el componente Home como About de se carguen con el encabezado en la parte superior.

almost 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Incluso en react-router-dom@6.4.0 , las rutas de diseño de renderizado con IU común siguen funcionando igual.

Cree un componente de ruta de diseño que represente el componente de encabezado común y un Outlet para rutas anidadas.

Ejemplo:

 const Layout = () => (
 <>
 <CommonHeader />
 <Outlet />
 </>
);

Importe y renderice el Layout en una ruta de diseño en la configuración.

 const routers = createBrowserRouter([
 {
 element: <Layout />,
 children: [
 {
 path: "/",
 element: <Home />,
 loader: authLoader
 },
 {
 path: "/about",
 element: <About />
 }
 ]
 }
]);

...

 function App() {
 return <RouterProvider router={routers} />;
}

Edite react-6-4-0-common-header-for-all-the-router

almost 4 years ago · Santiago Trujillo 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