Reputation:
const formRef = useRef(null);
const [model, setModel] = useState(null);
const [modal, setModal] = useState(false);
const [formData, setFormData] = useState<ProjectModel>();
useEffect(() => {
let ignore = false;
if (!ignore) {
setFormData({ projectName: null });
setModel(createModel());
}
return () => {
ignore = true
}
}, [])
const formChange = (value: ProjectModel) => {
const { formContextValue } = formRef && formRef.current || {};
model.valid = ValidateForm({ model: formContextValue.model, data: value });
setFormData(value)
};
const ModalCreate = ({ state, close }) => {
return (
<Modal show={state} onHide={close}>
<Modal.Header>
<Modal.Title>Manage Access</Modal.Title>
</Modal.Header>
<Modal.Body>
<Form
fluid
onChange={formChange}
formDefaultValue={formData}
ref={formRef}
>
<FormGroup>
<ControlLabel>Project Name</ControlLabel>
<FormControl name="projectName" className="w-full" accepter={Input} />
</FormGroup>
</Form>
</Modal.Body>
<Modal.Footer>
<Button onClick={close} appearance="primary">
Save
</Button>
<Button onClick={close} appearance="subtle">
Cancel
</Button>
</Modal.Footer>
</Modal>
);
};
return <ModalCreate state={modal} close={() => setModal(false)} />;
I have a problem here which every time I type it will closed. for example when I open the modal and try to input some text or try to type it will close then open then when I try to type again it will close then open again. per letter it will close then open. how to fix on it?
Upvotes: 0
Views: 215