Tengo una ventana emergente. Cuando un usuario ingresa a la página por primera vez, aparece un modal.
Este modal tiene un formulario y este formulario es obligatorio para completar. Cuando el usuario completa el formulario e ingresa a una página diferente, el modal no se abre, también está bien. Entonces, mi modal funciona perfectamente bien. Se abre automáticamente y el usuario no puede cerrarlo. Pero aquí está el problema, ¡no puedo cerrarlo también! Lo que quiero es cuando el usuario envía el formulario y cuando devuelve 200 OK , el modal se cerrará.
¿Cómo puedo hacerlo?
let handleSubmit = async (e) => { e.preventDefault(); try { let res = await fetch( process.env.REACT_APP_ENDPOINT + "user/me/contract", { method: "POST", headers: { "Content-Type": "application/json", Authorization: `Bearer ${localStorage.getItem( "fray_access_token" )}`, }, body: JSON.stringify({ name: name, surname: surname, email: email, }), } ); let resJson = await res.json(); if (res.status === 200) { console.log("CLOSE THE MODAL IN HERE"); console.log("CLOSE THE MODAL IN HERE"); console.log("CLOSE THE MODAL IN HERE"); } else { console.log("Some error occured"); } } catch (err) { console.log(err); } }; ... return(.. <Modal backdrop="static" isOpen={!modalOpen} size="lg" id="modal"> <ModalHeader>Hoşgeldiniz!</ModalHeader> <ModalBody> <Input required type="text" value={name} placeholder="İsim" onChange={(e) => setName(e.target.value)} /> ... ... </ModalBody> </Modal>Si tu estado es así:
const [modalOpen, setModalOpen] = useState(false)de lo que necesitas para hacer esto:
if (res.status === 200) { setModalOpen(false) } else {