Saya memiliki formulir yang menggunakan kueri formik dan reaksi. Saya ingin mengatur ulang formulir pada keberhasilan.

Apakah ada cara untuk meneruskan fungsi resetForm sebagai param ke 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');
      }
    },
  }
);

Untuk m

<Formik
  onSubmit={(values, { setSubmitting, resetForm }) => {
    mutation.mutate(values);
    setSubmitting(false);
  }}
>
  ...
</Formik>
0
vajad57 27 Mei 2021, 17:48

1 menjawab

Jawaban Terbaik

Anda dapat memiliki onSuccess di useMutation serta di onMutate:

<Formik
  onSubmit={(values, { setSubmitting, resetForm }) => {
    mutation.mutate(values, { onSuccess: ()=> resetForm() });
    setSubmitting(false);
  }}
>
  ...
</Formik>
1
TkDodo 27 Mei 2021, 16:38