У меня есть следующий код в виде схемы
schema = yup.object().shape({
name: yup.string().required('Required Field in name'),
industry: yup.string().required('Required Field in industry'),
address: yup.string().required('Required Field in address'),
crn: yup.number('Number required'),
});
У меня есть следующие значения состояний
name: {
value: '',
isRequired: true,
hasError: false,
order: 1,
errorMessage: '',
},
industry: { value: '', isRequired: true, hasError: false, order: 2 },
address: { value: '', isRequired: true, hasError: false, order: 3 },
crn: {
value: '',
isRequired: true,
hasError: false,
order: 4,
errorMessage: '',
},
website: { value: '', isRequired: true, hasError: false, order: 5 },
employeesNbr: { value: '', isRequired: true, hasError: false, order: 6 },
, и я использую функцию .validate из yup следующим образом
this.schema
.validate(
{
name: profile.name.value,
industry: profile.industry.value,
address: profile.address.value,
crn: profile.crn.value,
},
{ abortEarly: false },
)
.catch(err => {
console.log(err);
});
Мне нужна помощь в функции .catch, как извлечь пути ошибок, чтобы я мог связать их с состоянием для errorMessages. Обычно, чтобы получить доступ к pathName ошибки, это выглядит как err.inner [0] .pathname, err.inner [1] .pathname Подключение должно быть таким
profile[err.inner[x].path].hasError = true;
profile[err.inner[x].path].errorMessage = err.inner[x].message
Помощь в создании алгоритм l oop внутри catch будет оценен