#javascript #reactjs #validation #antd #ant-design-pro
Вопрос:
я проверяю формат url, а также отправляю поддержанный запрос, если этот url еще не принят, и если он принят, я выполняю проверку на ошибку, если он не принят, я сделаю его успешным. проблема в том, что когда я выполняю его успешно, формат url неверен, он показывает, что это успех, я знаю, что мне нужно проверить, правильный ли формат, и api возвращает true для url, который не принимает другой, так как я могу получить текущий статус проверки antd это мой код
[![lt;Form.Item name="websiteUrl" className="max-w-sm" validateStatus={validationStatus} hasFeedback rules={[ { required: true, type: 'url', message: 'Insert a Valid website URL (make sure to include http/https)', }, // { // pattern: new RegExp('^(ftp|http|https)://[^ "]
), // }, ({ getFieldValue }) =gt; ({ async validator(rule, value) { if (value === '') { return setValidationStatus('error'); } else { setValidationStatus('validating'); await checkWebsiteUrlApi(String(value).trim()) .then((response) =gt; { if (response) { setValidationStatus('error'); return Promise.reject( new Error('URL already exits!') ); } else { /* this is causing the problem before is set it to success i also have to check if the url is correct format before setting it to success */ setValidationStatus('success'); return Promise.resolve(); } }) .catch((error) =gt; { setValidationStatus('error'); return Promise.reject(new Error(error?.message)); }); } }, }), ]} gt; lt;Input name="websiteUrl" defaultValue={websiteUrl} onChange={(e) =gt; setWebsiteUrl(e.target.value)} className="max-w-sm" /gt; lt;/Form.Itemgt;][1]][1]