Проблема заключается в том, что вы устанавливаете объект в состоянии,
openModal({open: true})
Это сохранит объект в состоянии.
setState
требует прямого значения, которое необходимо изменить, вашеsetState
должно быть таким,
const onOpenModal = () => {
openModal(!open) //This will negate the previous state
};
const onCloseModal = () => {
openModal(!open) //This will negate the previous state
};
Демо
Вы можете упростить свой код и просто использовать 1 дескриптор изменения для вашего модального
const Login = () => {
const [open, openModal] = useState(false)
const toggleModal = () => {
openModal(!open)
};
return(
<div>
<h1>Login Form</h1>
<button onClick={toggleModal}>Open modal</button>
<Modal open={open} onClose={toggleModal} center>
<h2>Simple centered modal</h2>
</Modal>
</div>
)
}
Демо