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

182
Visualizações
¿La matriz useState se convierte en 2 matrices en console.log?

Estoy tratando de usar una matriz vacía en un proyecto react/ts como este. const [companyChatrooms, setCompanyChatrooms]: any = useState([]);

Luego uso un useEffect para hacerlo cuando renderizo el componente.

 async function fetchMyChatRooms() { const userCollection = await firestore.collection('user_in_chat') const snapshot = await userCollection.where('user_id', '==', myIdNumber).where('chatroom_id', '==', companyChatrooms).get(); snapshot.forEach(doc => { const roomID = doc.data().chatroom_id setMyChatrooms([...myChatrooms, roomID]) }); } fetchMyChatRooms() }, [companyChatrooms, myIdNumber]) console.log(myChatrooms)``` However, my console.log shows 2 arrays with each value instead of 1 array holding both values. How can i make sure both values are stored in same array? [1]: https://i.stack.imgur.com/q0WPD.png <-- Check how the output looks.
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Supongo que tiene una snapshot de matriz con más de 1 elemento y cualquier iteración está actualizando el estado. Esto causó múltiples re-renderizados

Le sugiero que actualice el estado después de iterar toda la matriz. Ejemplo:

 const rooms = [] snapshot.forEach(doc => { const roomID = doc.data().chatroom_id; rooms.push(roomID); }); setMyChatrooms(rooms)
about 4 years ago · Juan Pablo Isaza Relatório

0

debe configurarlos todos a la vez.

 async function fetchMyChatRooms() { const userCollection = await firestore.collection('user_in_chat') const snapshot = await userCollection.where('user_id', '==', myIdNumber).where('chatroom_id', '==', companyChatrooms).get(); // here is the changing const roomIDs = snapshot.map(doc => doc.data().chatroom_id); setMyChatrooms(roomIDs ) // fetchMyChatRooms() }, [companyChatrooms, myIdNumber]) console.log(myChatrooms)
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