Я использую Yup для проверки поля электронной почты:
const Schema = Yup.object().shape({
email: Yup.string()
.email("non valid email format")
.required("Email required"),
...
Во время отправки формы я проверяю, включен ли домен электронной почты в список запрещенных доменов, если да, я отображаю сообщение об ошибке во всплывающем окне:
const forbidDomains = domains;
const domain = data.email.split("@");
if (forbidDomains.Domains.includes(domain[1])) {
this.setState({openPopup:true,statusMessage:"domain not allowed : " + domain[1]})
this.setState({isSubmitting:false})
return;
}
Я хотел бы проверить домен в схеме Yup, но не уверен, что это возможно.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Я думаю, что вы ищете .test() от Yup. Может быть, что-то вроде этого может работать:
const schema = {
email: Yup.string()
.string()
.email()
.test('test-name', 'Validation failure message',
function(value) {
// your logic to check the domain
})
}