Я использую 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"}]
Разве это не должно работать?
То, чего я пытаюсь добиться, - это подтвердить дату рождения, поэтому эту дату необходимо ввести во входные данные.Позже я хочу удостовериться, что это не дата в будущем - но даже не может заставить проверку работать еще!
Есть идеи?
Ссылка на Песочницу