在 Formik 中提交嵌套表单
Submit nested form in Formik
我的问题是:在 formik 中,给定两个嵌套表单,我可以使用最外部的按钮调用两个表单的 onSubmit 吗?
例如,我有一个结构如下的程序:
component_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>
</>
我的问题是:在 formik 中,给定两个嵌套表单,我可以使用最外部的按钮调用两个表单的 onSubmit 吗?
例如,我有一个结构如下的程序:
component_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>
</>