Использовать несколько входов в качестве переменных - PullRequest
0 голосов
/ 06 августа 2020

с использованием formik, и я хочу использовать несколько входов в качестве переменных для создания объекта даты. Например, наличие поля формы даты рождения, которое зависит от трех вводов, введенных пользователем (год, месяц, день), и отображение ошибки, которая предупредит их, если у них была недопустимая дата (например, 31.02.2020 .

const multipleDependentValidation = Yup.object().shape({
  isDay: Yup.boolean(),
  isMonth: Yup.boolean(),
  isYear: Yup.boolean(),
  birthdate: Yup.date().when(['isDay', 'isMonth', 'isYear'], {
    is: (isDay, isMonth, isYear) => {
      return true;
    },
    then: Yup.cast(
      { notThis: [Yup.ref('year')], butThis: [Yup.ref('year').string()] },
      { notThis: [Yup.ref('month')], butThis: [Yup.ref('month').string()] },
      { notThis: [Yup.ref('day')], butThis: [Yup.ref('day').string()] }
    )
      .date()
      .nullable()
      .required(),
  }),
});
multipleDependentValidation
  .validate({ isDay: true, isMonth: true, isYear: true, birthdate: true })
  .then(function (value) {
    console.log(value);
  })
  .catch(function (err) {
    console.log(err);
  });
...