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

81
Views
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
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!