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

174
Visualizações
React: no se puede realizar una actualización de estado de React en un componente desmontado. Compartir estado entre 2 componentes y actualizarlo dentro del componente del otro

Soy un novato en reaccionar y desarrollar aplicaciones usando reaccionar js (frontal) y expreso (backend API). Digamos que tengo una tabla de organización obtenida a través de API. La red de estado que almacena la respuesta obtenida es compartida por ambos componentes <EnhancedTable/> y <FullScreenDialog/> representados por el enrutador de reacción

 export default function OrganizationTables({nav, setNav}) { const {networkName} = useParams(); const [network, setNetwork] = React.useState(false); const networkExists = React.useCallback(async () => { let res = await getNetworkExists(networkName); if(res.data.network===undefined) setNetwork(res.data); }, [networkName]); React.useEffect(() => { networkExists(); }, [networkExists, key]); return( <Routes> <Route path='/' element={<EnhancedTable nav={nav} setNav={setNav} network={network} networkName={networkName}/>}/> <Route path='/new' element={<FullScreenDialog network={network} setNetwork={setNetwork} />}/> </Routes> )}

El cuadro <FullScreenDialog> se usa para crear una nueva organización y, cuando tiene éxito, la redirige (usando la función useNavigate() del enrutador de reacción) a la <EnhancedTable/>. Al hacer eso, quiero actualizar el estado de la red nuevamente para capturar la organización recién creada. Entonces, en la función handleSubmit, hago setNetwork (falso) solo para cambiar el estado de la red. Pero aparece este error y las cosas no salen según lo planeado.

 export default function FullScreenDialog({setNetwork}) { const navigate = useNavigate(); .... ... const handleClose = () => navigate(`/superuser/networks/${networkName}/`); const handleSubmit = (event) => { event.preventDefault(); setLoading(true); const data = new FormData(event.currentTarget); createOrganization( ... // CODE ... .then(() => {setNetwork(false); handleClose()}) .catch((e)=> e.response.data.DETAILS? setFormResponseAlert(e.response.data.DETAILS): setFormResponseAlert(`Failed to connect to the server. Check your internet connection`)) .finally(()=>{ setTimeout(() => { setLoading(false); setOpen(true); }, 500); }); }; ... }

¿Puede alguien ayudarme con esto? Intenté poner una clave en Componente mejorado, bueno, me dio el mismo error.

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