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

201
Vistas
las publicaciones no estan en orden quiero mostrar la última publicación en la parte superior primero

Estoy haciendo un clon de Facebook, en mi feed de inicio, quiero mostrar todas las publicaciones, este código muestra las publicaciones pero no en orden, quiero mostrar primero la última publicación.
pero ahora esto se muestra (publicación anterior (que ya estaba cargada) en orden descendente y después de eso, todas las publicaciones nuevas en el orden correcto)

homeFeed.js

 import React ,{useState,useEffect} from 'react' import './stylesheets/HomeFeed.css'; import HomeReels from './HomeReels' import CreatePost from './CreatePost'; import Post from './Post'; import { ref, onValue} from "firebase/database"; import { realtimedb } from '../firebaseConfiguration'; export default function HomeFeed() { const [postdata, setpostdata] = useState([]) const starCountRef = ref(realtimedb, 'Posts/'); // get post from realtime database useEffect(()=>{ onValue(starCountRef, async (snapshot) => { const data = snapshot.val(); var captions=[]; //data is stored in raltime db firebase as ----> Post > uid > timestamp >{caption:"captions"} // conver objects to array , to store strings in final array data structure is in realtimedb > post > {uid:{time:{caption:"caption}}} (Object.values(data)).forEach((e)=>{ (Object.values(e)).forEach((p)=>{ captions.unshift(p.caption) }) }); setpostdata(captions) }); },[]) // make Post components const postRender = postdata.map((e)=>{ return<> <Post caption={e}/> </> }) return ( <div className='HomeFeed'> <HomeReels /> <CreatePost /> {postRender} </div> ) }

publicar.js

usa subtítulos como datos de publicación y los recibe como accesorios

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

0

Esta línea comentada es en realidad cómo se supone que debes hacer esto:

 // const [postdatabeforeload, setpostdatabeforeload] = useState([])

Sin useState o setState su código de representación se ejecuta antes de que los datos se carguen desde la base de datos, por lo que representa la matriz vacía que configuró inicialmente: var postdata=[] .

Al usar useState / setState , le dice a ReactJS que los datos han cambiado y eso lo activa para volver a mostrar la interfaz de usuario con el estado actualizado.

Entonces algo como:

 const [postdata, setpostdata] = useState([]) const starCountRef = ref(realtimedb, 'Posts/'); useEffect(() => { onValue(starCountRef, async (snapshot) => { const captions = []; snapshot.forEach((child) => { captions.push(child.val().caption); }); setpostdata(data) }); }, [])

Hasta useEffect se haya ejecutado, su postdata tendrá su valor predeterminado de [] , ya que eso es lo que especifica aquí [postdata, setpostdata] = useState([]) .

Luego, una vez que los datos se hayan cargado, obtendrá la matriz de subtítulos.

Ver también:

  • ¿Iniciar componentes de React con datos de la base de datos de Firebase?
  • Recuperar elementos de firebase y llenarlos dinámicamente en reaccionar nativo
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