簡體   English   中英

將參數從一個箭頭函數傳遞給另一個?

[英]Pass Parameter from One Arrow Function to Another?

我在 Reactjs 中使用 formik 並且有一個 onSubmit 方法,它有一個 setSubmitting 參數。 我想將它傳遞給我的“then”方法,但不確定如何執行此操作。

  onSubmit={(values, { setSubmitting, setErrors }) => {

            setSubmitting(true);

            // how can I get away from doing this.
            const submitting = setSubmitting;

              ajaxMethod(values)
              .then(() => {
                submitting(false);  // how could I just call setSubmitting.             
              })
              .catch((error, ) => {

                submitting(false);
              });
          }}

編輯

 <Formik
          initialValues={{
          }}
          validationSchema={Yup.object().shape({
          })}
          onSubmit={(values, { setSubmitting, setErrors }) => {
            setSubmitting(true);

            const submitting = setSubmitting;

            ajaxMethod(values)
              .then(() => {
                setSubmitting(false);
              })
              .catch((error, setSubmitting) => {
                setSubmitting(false);
              });
          }}
          render={props => (
            <Form autoComplete="off" id="record-payment-form">

            </Form>
          )}
        />


 ajaxMethod: flow(function*(formData) {

    })

您根本不需要那個本地submitting變量。 只需調用setSubmitting

(values, { setSubmitting, setErrors }) => {
    setSubmitting(true);

    ajaxMethod(values).then(() => {
        setSubmitting(false);
    }).catch((error) => {
        setSubmitting(false);
    });
}

順便說一句,您可能希望使用finally代替:

(values, { setSubmitting, setErrors }) => {
    setSubmitting(true);

    ajaxMethod(values).finally(() => {
        setSubmitting(false);
    });
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM