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

132
Vistas
La aplicación React no se vuelve a renderizar después de la implementación de desplazamiento infinito

Hola amigos, espero que alguien me pueda ayudar con un problema. Creé una función que recupera las publicaciones de los usuarios desde el backend y las devuelve como respuesta:

 const [posts, setPosts] = useState([]); const newsFeed = async () => { await axios .post(`${process.env.REACT_APP_API}/news-feed`) .then((res) => { setPosts(res.data); }) .catch((err) => { console.log(err); }); };

useEffect llama a esta función y también cada vez que se envía una publicación, le gusta, se comenta, etc., de modo que las publicaciones de los usuarios siempre se vuelven a procesar cada vez que se modifican o agregan.

Funcionaba bien hasta que decidí implementar Infinite Scroll en mi aplicación. Instalé el paquete npm react-infinite-scroll-component y modifiqué mi función para que se vea así:

 const [posts, setPosts] = useState([]); const [page, setPage] = useState(1); const newsFeed = async () => { await axios .post( `${process.env.REACT_APP_API}/news-feed/${page}`) .then((res) => { let newPosts = posts; newPosts = newPosts.concat(res.data); setPosts(newPosts); setPage(page + 1); }) .catch((err) => { console.log(err); }); };

El desplazamiento infinito funciona bien, pero ahora las publicaciones no se vuelven a mostrar cada vez que se llama a esta función y, en cambio, necesito actualizar la página para ver los cambios. Intenté restablecer el estado de la page a 1 nuevamente en mis funciones postSubmit / likeHandler , pero esto no tuvo ningún efecto. No veo ningún error en la consola, así que no estoy seguro de lo que está pasando.

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

0

Reemplazar let newPosts = posts; with let newPosts = [...posts]; Pasar la misma referencia de matriz a setState no provocará una actualización, ya que el valor no ha cambiado. Al usar [...posts] , está creando una nueva matriz, lo que hace que el componente se actualice.

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