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

127
Views
¿Hay alguna manera de esperar a que se cargue una función en la carga de la página en reaccionar nativo?

Estoy desarrollando una aplicación de red social y estoy tratando de cargar los comentarios debajo de cada publicación. Intenté usar funciones asíncronas y el gancho useEffect pero no funciona. Aquí está el código que he probado

 const [comments, setComments] = useState([]); // get all comments for the current post const getComments = () => { async (dispatch) => { try { await db.collection('posts') .doc(postId) .collection('comments') .orderBy('timestamp', 'desc').onSnapshot(snapshot => { setComments(snapshot.docs.map(doc => doc.data())); console.log('Comments', snapshot.docs.map(doc => doc.data())); } ) } catch (error) { console.log(error); } } } // load the current user, post ID and comments upon opening the screen useEffect(() => { getComments(); getUser(); getPostId(); }, []);

Los comentarios se cargan en la consola pero no se muestran a menos que actualice la página mientras estoy en ella. Los estoy mostrando así:

 <View> {comments.map((comments, index) => ( <Comment comment={comments} key={index} /> ))} </View>
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

necesita llamar a la función asíncrona dentro de getComments

 const getComments = () => { (async (dispatch) => { try { await db.collection('posts') .doc(postId) .collection('comments') .orderBy('timestamp', 'desc').onSnapshot(snapshot => { setComments(snapshot.docs.map(doc => doc.data())); console.log('Comments', snapshot.docs.map(doc => doc.data())); } ) } catch (error) { console.log(error); } })() }

o también puede eliminar la función dentro de getComments y cambiar la función getComments a asíncrona

 const getComments = async (dispatch) => { try { await db.collection('posts') .doc(postId) .collection('comments') .orderBy('timestamp', 'desc').onSnapshot(snapshot => { setComments(snapshot.docs.map(doc => doc.data())); console.log('Comments', snapshot.docs.map(doc => doc.data())); } ) } catch (error) { console.log(error); } }
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!