Реагируйте на проверку URL-адреса ввода Antd

#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]