[英]Pass Parameter From OnClick Event from one Javascript Function to Another
[英]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.