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
Reaccionar el enlace del enrutador al mismo componente con una URL diferente que no se vuelve a renderizar

Tengo un componente llamado Publicaciones que enumera todas las publicaciones en un blog. Tengo enlaces alrededor de los nombres de usuario de la publicación que se vinculan al mismo componente (Publicaciones) solo con una URL diferente que contiene una identificación de usuario para consultar las publicaciones. El problema es que el componente Publicaciones no se volverá a procesar al visitar esta URL, aunque la URL en el navegador cambie en consecuencia.

Rutas en App.js:

 <Routes> <Route path='/' element={<Posts/>}/> <Route path='/user/:user_id/posts' element={<Posts/>}/> </Routes>

Enlaces en Posts.js

 <Link to={`/user/${post.user.id}/posts`}> {post.user.username} </Link>

He intentado varias cosas, incluido intentar agregar una clave al componente, pero no funcionó. También vi un fragmento de código de "forzar volver a renderizar", pero era para una versión anterior de React Router.

¿Cómo puedo forzar la representación del componente Publicaciones en React Router v6?

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

0

Si las Posts se procesan mediante una ruta que tiene parámetros de ruta cambiantes

 <Routes> <Route path='/' element={<Posts/>}/> <Route path='/user/:user_id/posts' element={<Posts/>}/> </Routes>

entonces debería "escuchar" los cambios en los parámetros de coincidencia de la ruta.

En las useParams Posts acceder al parámetro de coincidencia de ruta user_id , y use un gancho useEffect con una dependencia en user_id para ejecutar/volver a ejecutar cualquier lógica.

 import { useParams } from 'react-router-dom'; ... const { user_id } = useParams(); useEffect(() => { if (user_id) { // do something with user_id } }, [user_id]);

Si Posts es un componente de clase, entonces conviértalo en un componente de función para que pueda usar ganchos de React, o cree un componente contenedor o un nuevo reemplazo de withRouter para usar el gancho e inyectar params como accesorio.

about 4 years ago · Juan Pablo Isaza Denunciar

0

No estoy seguro, pero tal vez este tipo de código funcionaría, creo...

 <Routes> <Route path='/' element={props => <Posts {...props} />}/> <Route path='/user/:user_id/posts' element={props => <Posts {...props} />}/> </Routes>

Y si no funciona, tal vez simplemente usar <a> en lugar de <Link> podría funcionar.

 <a href={`/user/${post.user.id}/posts`}> {post.user.username} </a>
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