使用反应钩子打字时如何修复模态关闭

问题描述

  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)} />;

在这里遇到一个问题,每次我输入它都会关闭。例如,当我打开模态并尝试输入一些文本或尝试输入时,它会关闭然后打开,然后当我再次尝试输入时它会关闭然后再次打开。每个字母它将关闭然后打开。怎么解决

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...