使用突变反应查询重置 formik 表单

时间:2021-05-27 14:48:58

标签: reactjs formik react-query

我有一个使用 formik 和 react 查询的表单。我想在成功时重置表单。

有没有办法将 resetForm 函数作为参数传递给 onSuccess ?

const mutation = useMutation(
  (newUser) =>
    axios.post(`/api/accounts`, newUser),
  {
    onSuccess: (data) => {
      alert(JSON.stringify(data));
      router.push(`/confirm-email?email=${data.email}`);
    },
    onError: (error) => {
      if (error.response && error.response.data.message) {
        openSnackbar(error.response.data.message);
      } else {
        openSnackbar('Something went wrong, please retry later');
      }
    },
  }
);

表格

<Formik
  onSubmit={(values, { setSubmitting, resetForm }) => {
    mutation.mutate(values);
    setSubmitting(false);
  }}
>
  ...
</Formik>

1 个答案:

答案 0 :(得分:1)

您可以在 useMutation 和 onMutate 中使用 onSuccess:

<Formik
  onSubmit={(values, { setSubmitting, resetForm }) => {
    mutation.mutate(values, { onSuccess: ()=> resetForm() });
    setSubmitting(false);
  }}
>
  ...
</Formik>