проверка с использованием ошибок извлечения yup - PullRequest
0 голосов
/ 05 мая 2020

У меня есть следующий код в виде схемы

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 будет оценен

...