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

560
Vistas
react-router-dom cómo navegar hacia atrás (no en el historial)

Tengo algunas rutas anidadas y necesito navegar hacia atrás "un nivel más arriba", por así decirlo.

estoy usando react-router-dom v5.3.1

history.goBack() me llevará a la última página visitada, como si usara el botón Atrás en el navegador. No necesito esto.

Imagina que mi historial se parece a esto...:

 [ dashboard/1/sub-page/7 dashboard/1/sub-page/13 dashboard/1/sub-page/9 dashboard/1/sub-page/1 ]

La URL de mi navegador es: localhost:8080&app.html#/dashboard/1/sub-page/7

¿ react-router-dom proporciona una forma segura de navegar a: localhost:8080&app.html#/dashboard/1 - o cuál sería un enfoque decente aquí?

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

0

El objeto de history solo puede navegar a rutas definidas específicamente a través de una cadena de ruta con .push / .replace , o navegar hacia adelante/atrás a través de un delta con .go .

Puede crear un controlador "goToParent" que lea el nombre de pathname de la ubicación coincidente actual y corte el último segmento de ruta y emita un PUSH.

Ejemplo:

 import { useLocation, useHistory } from "react-router-dom"; ... const { pathname } = useLocation(); const history = useHistory(); const goUpLevel = () => { const parent = pathname.split("/").slice(0, -1).join("/"); history.push(parent); }

Editar reaccionar-router-dom-cómo-navegar-hacia atrás-no-en-historia

Si desea subir dos niveles, es decir, desde "/dashboard/1/sub-page/7" hasta "/dashboard/1" , use .slice(0, -2) para cortar los dos últimos segmentos.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Intente usar el gancho useNavigate() de react-router-dom .

Como puedo ver, esto podría satisfacer su necesidad al pasar un delta como argumento a la función de navegación, o simplemente puede pasar la ruta a la que desea ir.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Puedes usar "." o ".." en su componente Link para subir uno o dos niveles.

 <Link to=".">Go one level up</Link> <Link to="..">Go two levels up</Link>

Otro enfoque es mapear rutas en ayudantes para que pueda reutilizarlos a lo largo de la base de código:

 // Routes helpers const dashboardRoute = (id) => `/dashboard/${id}`; const subPageRoute = (id, subId) => `/dashboard/${id}/sub-page/${subId}`; // Routes mapping <Switch> <Route path={dashboardRoute(":id")}> <Dashboard /> </Route> <Route path={subPageRoute(":id", ":subId")}> <SubPage/> </Route> </Switch> // Route helper usage <Link to={dashboardRoute(id)} >Go to dashboard route</Link>
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