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

71
Vistas
Bucle infinito al intentar generar un nuevo mensaje de chat usando reaccionar y base de fuego

Actualmente estoy trabajando en una aplicación de chat en React y me encontré con un problema en el que cada vez que uso ref.on('child_added'...) obtengo un bucle infinito. Sé que este no debería ser el caso, ya que si ref.on solo representará algo si se agrega un elemento secundario a un nodo. Mi código está abajo.

 useEffect(()=> { //Depending on what user you want to chat with, set the chatroom if ((props.who)>(auth.currentUser.uid)) { setChatroom(props.who + auth.currentUser.uid); } else { setChatroom(auth.currentUser.uid + props.who); } let ref = db.ref(`Messages/${chatroom}`); //Loop over all the messages and store them in the messages array to display ref.on('value', (snapshot) => { let newUserState = []; snapshot.forEach(data => { newUserState.push(data.val()); }) setMessages(newUserState); }); },[chatroom,props.who]) let ref = db.ref(`Messages/${chatroom}`); ref.on('child_added', (snapshot) => { setMessages([...messages,snapshot.val()]); });

La variedad de mensajes con los que trabajo es lo que finalmente se representa al final. La primera declaración de uso y efecto se usa para agregar todos los mensajes de chat con un usuario en particular al hacer clic en el chat con ese usuario (la matriz solo se actualiza al elegir interactuar con ese usuario). El código debajo solía agregar un mensaje a una matriz solo si la base de datos se actualizaba con un mensaje.

about 4 years ago · Juan Pablo Isaza
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