【问题标题】:React Formik insert a formik form into parent formik formReact Formik 将 formik 表单插入到父 formik 表单中
【发布时间】:2020-08-13 04:38:14
【问题描述】:

目前,我有父组件和子组件Dialog 不同的formik 形式,简要结构是这样的

<Formik initialValues={...} onSubmit={...}>
  //some form fields here
  <Button type="submit" />
  <Button onClick={()=>{setDialogOpen(true)}}/>
  <Dialog Open={dialogOpen}>
</Formik>

<Dialog>
  <Formik initialValues={...} onSubmit={...}>
    //some form fields here
    <Button type="submit" />
  </Formik>
</Dialog>

由于某种原因我无法将Dialog从父formik中取出,问题是当我点击孩子的提交按钮时,也会触发父母的formik表单,我该如何避免这种情况?

【问题讨论】:

    标签: javascript reactjs formik formik-material-ui


    【解决方案1】:

    我认为提交按钮事件正在冒泡到顶部表单。 如果你使用 formik 钩子 useFormik 你可以有两个单独的表单并在每个按钮上调用提交:

    import { useFormik } from 'formik';
    const [parentForm] = useFormik();
    const [dialogForm] = useFormik();
    
    <Formik initialValues={...} onSubmit={...} form={parentForm}>
      //some form fields here
      <Button onClick={() => parentForm.submit()} />
      <Button onClick={()=>{setDialogOpen(true)}}/>
      <Dialog Open={dialogOpen}>
    </Formik>
    
    <Dialog>
      <Formik initialValues={...} onSubmit={...} form={dialogForm}>
        //some form fields here
        <Button onClick={() => dialogForm.submit()} />
      </Formik>
    </Dialog>
    

    【讨论】:

    猜你喜欢
    • 2021-01-30
    • 2022-08-18
    • 1970-01-01
    • 1970-01-01
    • 2020-12-06
    • 2021-10-19
    • 1970-01-01
    • 2021-08-15
    • 2019-10-04
    相关资源
    最近更新 更多