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

262
Vistas
Reaccionar: ¿Cómo redirigir a una nueva ruta (id diferente) desde la misma ruta?

En react-router, no podemos enviar la misma ruta en useHisotry() y provocar una nueva representación. Por ejemplo, si la aplicación del componente se muestra en la ruta https://localhost:3000 y hago clic en el botón Click Me! , no causará una nueva representación:

 function App() { const history = useHistory(); return ( <button onClick={() => {history.push('/')}}> Click Me! </button> ) }

Quiero lograr una funcionalidad similar, pero no estoy seguro del enfoque o de lo que me estoy perdiendo.

Mi ruta actual se ve así: https://localhost:3000/user/1

Quiero ir al usuario/2 haciendo clic en un botón.

Mi código se parece al siguiente:

 <Route exact path="/user/:userId" component={User} /> function User() { const history = useHistory(); return ( <button onClick={() => {history.push('/user/2')}}> Click Me! </button> ) }

El código anterior cambia la ruta pero no vuelve a representar el componente. ¿Cómo puedo solucionar este problema?

Gracias

about 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Mi consejo es actualizar para react router dom v6 y usar useNavigate , tutorial aquí

una vez que importe useNavigate desde react-router-dom

 let navigate = useNavigate();

y en su botón llama a esta función al hacer clic en pasar la url deseada

 <button onClick={()=> navigate('/users/2')}

La información de su componente no cambiará porque no está representando nada dinámicamente en él, por lo que debe obtener el ID de userid de la URL y luego, digamos, mostrarlo. Consultar documentos

Como la respuesta a continuación, puede hacerlo exactamente como dijo.

 const { userId } = useParams(); return ( <div>userId: { userId }</div> );
about 4 years ago · Santiago Trujillo Denunciar

0

No recomiendo usar el history para este caso. Si realmente lo necesita, dentro del componente User obtenga el parámetro ID de usuario y reaccione en consecuencia.

 <Route exact path='/user/:userId' component={User} /> const User = () => { const { userId } = useParams(); return ( <div>userId: { userId }</div> ); } export default User;
about 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