Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

100
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!