Estoy trabajando en un formulario ( Ant Design {amp}lt;Form{amp}gt; ) donde quiero una validación personalizada del número de teléfono (ya que depende del campo del country y tiene una lógica adicional), y otros campos validados por las antd incorporadas de antd , así que cuando el usuario envía el formulario Deseo que todos los campos se validen con validateFields() pasados ​​como una matriz de nombres de campo que muestran los errores de validación como de costumbre (mensaje rojo debajo y un mensaje de error en la consola), pero todo lo que recibo es solo un mensaje de advertencia en la consola

Aquí hay una reproducción mínima

Editar confianza-goodall-4f0bx

¿Me falta algo sobre cómo funciona la función de validator ?

haga un check if if en su función validatePhone si el valor no está vacío, luego ejecute su código y si el valor está vacío simplemente envíe una devolución de llamada en condición else. como eso

 const validatePhone = (rule: any, value: any, callback: any) ={amp}gt; { if(value){ const countryName = form.getFieldValue('country'); const country = CountryList.getCode(countryName); const phoneNumber = parsePhoneNumberFromString(value, country as CountryCode); console.log(form.getFieldValue('country')); if (countryName {amp}amp;{amp}amp; phoneNumber {amp}amp;{amp}amp; phoneNumber.isValid()) { updatePhonePrefix(prefix.concat(phoneNumber.countryCallingCode as string)); callback(); } else { callback(`Phone number is not valid for ${countryName}`); } }else{ callback() } };