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

2.1K
Vistas
react-router: ¿Cómo actualizo la URL sin causar una navegación/recarga?

Con el enrutador de reacción, he hecho esto para actualizar la URL:

 this.props.history.push({ pathname: `/product/${this.props.product.id}`, });

Sin embargo, esto provoca un cambio de renderizado/navegación. ¿Hay alguna manera de actualizar la URL sin hacer eso?

Mi caso de uso es que tengo una lista de productos y cuando hago clic en uno, muestro un Modal y quiero actualizar la URL a algo como ejemplo.com/producto/1 para que el enlace se pueda compartir.

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

No pude encontrar una solución usando React Router, pero pude lograr esto usando la interfaz de historial del navegador llamando:

 window.history.replaceState(null, "New Page Title", "/pathname/goes/here")

Puede obtener más información sobre .replaceState aquí .

React Router's history.replace no siempre funcionará

El método history.replace de React Router puede o no desencadenar una nueva representación dependiendo de la configuración de la ruta de su aplicación (por ejemplo, tiene una ruta catch-all /* ). No impide un renderizado por definición.

over 4 years ago · Santiago Trujillo Denunciar

0

reemplazar anulará la URL

 this.props.history.replace({ pathname: `/product/${this.props.product.id}`})
over 4 years ago · Santiago Trujillo Denunciar

0

Estoy usando una buena forma de engañar a los usuarios: la URL no cambia.

Para hacer esto, solo necesitará configurar sus rutas de esta manera.

 const Home = '/'; const About = '/ '; const Contact = '/ ';

Fíjate en los espacios. Todos los caracteres se contarán dentro de la cita, por lo que debería funcionar.

Routes.tsx

 <Route exact path={Home} component={Home} /> <Route exact path={About} component={About} /> <Route exact path={Contact} component={Contact} />

Dentro de su About.tsx y Contact.tsx :

 useEffect(() => { window.history.replaceState(null, '', Home); }, []);

Después de que el usuario navegue a las páginas About de o Contact , se llamará al gancho y se ejecutará el código dentro de la función de devolución de llamada. Eliminará los espacios después de que el componente se renderice.

Ese debería ser un truco limpio para disfrazar la URL oculta 😂

over 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