繁体   English   中英

在 Formik 中提交嵌套表单

[英]Submit nested form in Formik

我的问题是:在 formik 中,给定两个嵌套表单,我可以使用最外部的按钮调用这两个表单的 onSubmit 吗?

例如,我有一个结构如下的程序:

组件_A.tsx:

<Formik
initialValues={values}
onSubmit={(values) => doTheRightThing_A(values)}
>
{formik =>
        <Component B />

        <Button
        type="primary"
        onClick={formik.submitForm}
        >
            Save
        </Button>
}
</Formik>

和 component_B.tsx 有:

<Formik
initialValues={question: ''}
onSubmit={(values) => doTheRightThing_B(values)}
>
{formik =>
        <Field name="question" />
}
</Formik>

按保存按钮,我想同时运行 doTheRightThing_A 和 B。提前致谢!

是的,您可以,您所要做的就是将 Form B 的 formikConfig 分配给一个 ref。

const formikBRef = useRef();

const onSave = (values) => {
    (values) => doTheRightThing_A(values)
    formikBRef.current?.submitForm()
}

return </>
<Formik
    initialValues={values}
    onSubmit={onSave}
>
    {formik =>
        <Component B />
        <Button
            type="primary"
            onClick={formik.submitForm}
        >
            Save
        </Button>
    }
</Formik>

<Formik
    initialValues={question: ''}
    onSubmit={(values) => doTheRightThing_B(values)}
    innerRef={formikBRef}
>
    {formik =>
        <Field name="question" />
    }
</Formik>
</>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM