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

265
Visualizações
Cierre modal de Mui en la acción de despacho en el componente principal

He creado un componente modal que se abre onClick. Este componente utiliza una devolución de llamada de su componente principal que envía una acción desde su componente principal. El modal tiene una variable de estado llamada "abrir" que se usa para decidir si abrir o no el modal.

 const handleOpen = () => { props.getDetails(props.dsaId?props.dsaId:props.triggerName) setOpen(open)

};

La función handleOpen se llama cuando se hace clic en el botón. Como puede ver, setOpen cambia el valor [open] a true , que a su vez debería abrir el Modal.

 props.getDetails(props.dsaId?props.dsaId:props.triggerName)

se usa para enviar una acción en el componente principal, que a su vez pasará los datos como accesorios a mi componente secundario.

El problema es que cuando llamo a la función de devolución de llamada desde el componente secundario, la acción enviada en el componente principal hace que el principal se vuelva a procesar, lo que a su vez vuelve a generar la configuración del componente secundario [abierto] en falso nuevamente, lo que cierra el modal.

¿Cómo mantengo el modal abierto después de enviar la acción?

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Puede mover el estado del modelo hasta el estado principal. Leer[Levantando el estado] .

about 4 years ago · Juan Pablo Isaza Relatório

0

Puede mantener el estado abierto de modal en el componente principal y pasarlo en los accesorios al componente secundario.

 const Parent = () => { const [childModalOpen, setChildModalOpen] = useState(false); return ( <Child modalOpen={childModalOpen} onModalChange={(open) => setChildModalOpen(open)} {...otherProps} />); }; const Child = ({ modalOpen, onModalChange }) => { const [open, setOpen] = useState(open); useEffect(() => { setOpen(modalOpen); }, [modalOpen]); const handleOpen = () => { onModalChange(true); }; const handleClose = () => { onModalChange(close); }; return ( <Modal open={} onClose={handleClose}> {* children *} </Modal>); };
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