Привет, я снова с Ага и сомневаюсь
Мне нужно проверить массив полей Fromik, используя Yup. Мои поля похожи на
[{startdate:'',endDate:'',name:''},{startdate:'',endDate:'',name:''}]
Даты начала / окончания - это объект даты. Перед использованием Yup и formik я выполнял проверку, чтобы проверить, что выбранная дата уже выходит, как это
const checkDate=(selectedDate)=>{
const isExisting = datas
.filter((data) => data.startDate !== null || data.endDate !== null)
.some(
(data) =>
new Date(data.startDate).toLocaleDateString() === selectedDate ||
new Date(data.endDate).toLocaleDateString() === selectedDate,
);
if (isExisting) {
toast.error('Date already exits');
return false;
}
}
Я знаю это немного странное. У некоторых из вас может быть лучший вариант для этого. Я выполнял все проверки форм вручную, как это, После использования formik и Yup очень помогли.
Подойдя к вопросу, мне нужно проверить дату, если пользователь выбрал какую-либо, Проверить, если выбранная дата выходит или нет в массиве. Его массив полей formik Моя схема проверки похожа на
export const CheckoutSchema = Yup.object().shape({
Checkout: Yup.array()
.of(
Yup.object().shape({
name: Yup.string().required(),
startDate: Yup.date().required(),
endDate: Yup.date().required(),
}),
)
});
Я проверил несколько страниц git и переполнение стека, но не знаю, сработает ли он в моем случае здесь