不要直接操纵DOM。你提供的链接已经过时,并且有一些误导性的信息。相反,设置属性
disabled
在JSX中。你可以简单地使用Formik的
isSubmitting
价值:
const submitForm = async (formValues) => {
const url = '/app/submitAgreement';
let obj = {'formValues': formValues};
await axios.post(url, obj);
}
<Formik
enableReinitialize
validationSchema={mySchema}
onSubmit={ (values) => {
submitForm(values); // Calls submitForm() function if there are no errors
}}
initialValues={initialFormValues}
>
{
({handleSubmit, handleChange, handleBlur, setFieldValue, setFieldTouched, values, touched, isValid, errors, isSubmitting})
=> (
<Form onSubmit={handleSubmit}> {/* Form starts here */}
..
..
<Button type="submit" disabled={isSubmitting}
>Submit</Button>
..
</Form>
如果你想让按钮保持禁用状态:
const [isSubmitted, setIsSubmitted] = useState(false);
//...
const submitForm = async (formValues) => {
const url = '/app/submitAgreement';
let obj = {'formValues': formValues};
await axios.post(url, obj);
setIsSubmitted(true);
}
//...
<Button type="submit" disabled={isSubmitting || isSubmitted}