表单提交后 formik 表单重置 react js
formik form reset after form submit react js
我正在使用 Formik 作为我的 React 表单。表单提交后,我需要重置表单。我需要在保存函数中重置表单。这是我的保存功能。
const saveForm= (event) => {
const header = {
Auth_token: `${appUserConfig.accessTokenName}=${appUserConfig.accessToken}`,
User_name: appUserConfig.userName,
};
console.log(data);
httpPost(SAVE_INVOICE,data, header)
.then((response) => {
if (response.status === 200) {
toast.success('Successfully Saved', {position: toast.POSITION.TOP_RIGHT})
}
resetForm();
// I need to call reset function here
})
.catch((e) => {
toast.error('Error', {position: toast.POSITION.TOP_RIGHT})
console.log("e:", e);
});
}
我关注了 Formik 文档。根据下面的文档,代码对我有用。
<Formik
initialValues={!location.state ? InvoiceInitalValues : location.state}
validationSchema={POValidation}
onSubmit={(form, actions, resetForm ) => {
console.log(form);
setTimeout(() => {
saveInvoice(form);
actions.setSubmitting(false);
actions.resetForm();
}, 1000);
}}
>
但是我需要在保存函数中重置表单。我如何在保存功能中重置我的表单。
有多种方法可以解决这个问题,一种是在 Formik 组件的 onSubmit 函数中调用 saveForm 并将处理重置事件的 saveForm 的参数传递给处理重置事件的参数。
例子
onSubmit:{(form, actions, resetForm ) => {
saveForm(form, actions);
}}
const saveForm = (form, { resetForm }) => {
//save form code
resetForm();
}
或者你可以像这样直接设置到onSubmit函数
onSubmit:saveForm
这会将 onSubmit 收到的所有参数直接传递给您的 saveForm 函数。
我正在使用 Formik 作为我的 React 表单。表单提交后,我需要重置表单。我需要在保存函数中重置表单。这是我的保存功能。
const saveForm= (event) => {
const header = {
Auth_token: `${appUserConfig.accessTokenName}=${appUserConfig.accessToken}`,
User_name: appUserConfig.userName,
};
console.log(data);
httpPost(SAVE_INVOICE,data, header)
.then((response) => {
if (response.status === 200) {
toast.success('Successfully Saved', {position: toast.POSITION.TOP_RIGHT})
}
resetForm();
// I need to call reset function here
})
.catch((e) => {
toast.error('Error', {position: toast.POSITION.TOP_RIGHT})
console.log("e:", e);
});
}
我关注了 Formik 文档。根据下面的文档,代码对我有用。
<Formik
initialValues={!location.state ? InvoiceInitalValues : location.state}
validationSchema={POValidation}
onSubmit={(form, actions, resetForm ) => {
console.log(form);
setTimeout(() => {
saveInvoice(form);
actions.setSubmitting(false);
actions.resetForm();
}, 1000);
}}
>
但是我需要在保存函数中重置表单。我如何在保存功能中重置我的表单。
有多种方法可以解决这个问题,一种是在 Formik 组件的 onSubmit 函数中调用 saveForm 并将处理重置事件的 saveForm 的参数传递给处理重置事件的参数。 例子
onSubmit:{(form, actions, resetForm ) => {
saveForm(form, actions);
}}
const saveForm = (form, { resetForm }) => {
//save form code
resetForm();
}
或者你可以像这样直接设置到onSubmit函数
onSubmit:saveForm
这会将 onSubmit 收到的所有参数直接传递给您的 saveForm 函数。