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

125
Visualizações
¿Por qué mi componente secundario de React no se vuelve a renderizar?

Estoy desarrollando una aplicación web similar a una consola. Cuando el usuario ingresa algo, se agrega un componente en un elemento childrens que es un apoyo de un componente <ConsoleOutput> ; por ejemplo, cuando el usuario ingresa 'lista de salas de chat', se crea un componente <ChatroomList> :

 const [childrens, setChildrens] = useState([]); /* Switch that analizes input */ case 'chatrooms list': setChildrens(childrens => { return ( [...childrens, <ChatroomList chatrooms={chatrooms} />] ); }); break;

Entonces en la aplicación devuelvo esto:

 return ( <div className='container-fluid'> <Header /> <ConsoleOutput childrens={childrens} /> <CommandInput onSubmit={processCommand} /> </div> );

Esto está funcionando muy bien, los componentes se agregan correctamente en la entrada y se reflejan en la pantalla (se vuelve a renderizar en el cambio); la cuestión es que estos childrens no se vuelven a renderizar con el cambio, por ejemplo, <ChatroomList> que toma un accesorio de chatrooms de chat.

Este accesorio se actualiza constantemente con un gancho useEffect:

 useEffect(() => { const getChatrooms = async () => { const response = await fetchChatrooms(); if (response.success) { const serverChatrooms = response.chatrooms; setChatrooms(serverChatrooms); } } getChatrooms(); }, [chatrooms]);

Entonces, si el usuario ingresa la chatrooms list , este componente <ChatroomList> se crea y se muestra en la pantalla, pero si la propiedad de las chatrooms de chat cambia, tengo que crear nuevamente el componente o volver a cargar la página para ver los cambios.

Sospecho que esto se debe a que este componente es un componente secundario de <ConsoleOutput> , pero no estoy seguro.

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