Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

205
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda