Почему эта проверка даты не работает с Formik? - PullRequest
0 голосов
/ 12 мая 2019

Я использую Formik / Yup для проверки формы и пытаюсь подтвердить день рождения.

Вот моя форма:

let initialState = [
  // { dateOfBirth: "2019-05-07" },
  // { dateOfBirth: "2019-05-07" }
];
return (
  <div>
    <Formik
      initialValues={initialState}
      validationSchema={Schema}
      onSubmit={this.handleSubmit}
      render={({ handleSubmit, isSubmitting }) => (
        <Form onSubmit={handleSubmit}>
          {childrenToOrder.map((item, index) => {
            let borderBottom = `1px solid black`;
            // no border on the last item
            if (childrenToOrder.length - 1 === index) {
              borderBottom = "none";
            }
            return (
              <div
                key={index}
                style={{
                  marginBottom: `${scale.s4}rem`,
                  paddingBottom: `${scale.s4}rem`,
                  borderBottom: borderBottom
                }}
              >
                <h2
                  style={{
                    fontSize: "24px",
                    marginBottom: `${scale.s3 + scale.s1}rem`
                  }}
                >
                  {item.firstName}
                </h2>
                <Field
                  type="date"
                  label="Date of birth"
                  name={`${index}.dateOfBirth`}
                  placeholder="27/01/2000"
                  component={Input}
                />
              </div>
            );
          })}
          <button type="submit" disabled={isSubmitting}>
            Submit Form
          </button>
        </Form>

А вот моя Scehma:

const Schema = Yup.object().shape([
  {
    dateOfBirth: Yup.date().required("Required")
  }
]);

Когда я console.log значения формы, я получаю следующее:

[{dateOfBirth: "2019-05-07"}, {dateOfBirth: "2019-05-07"}]

Разве это не должно работать?

То, чего я пытаюсь добиться, - это подтвердить дату рождения, поэтому эту дату необходимо ввести во входные данные.Позже я хочу удостовериться, что это не дата в будущем - но даже не может заставить проверку работать еще!

Есть идеи?

Ссылка на Песочницу

...