• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

225
Views
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 3 years ago · Juan Pablo Isaza
2 answers
Answer question

0

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

about 3 years ago · Juan Pablo Isaza Report

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 3 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error