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

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

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 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