【发布时间】:2020-07-25 00:12:42
【问题描述】:
嗨,我又和 Yup 和 formik 怀疑了
我需要使用是的验证 Fromik 字段数组 我的字段就像
[{startdate:'',endDate:'',name:''},{startdate:'',endDate:'',name:''}]
开始/结束日期是 Date 对象 在使用 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 之后,我像这样手动进行所有表单验证。
如果用户选择了任何日期,我需要验证日期,验证所选日期是否存在于数组中。它的表单字段数组 我的验证模式就像
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 页面和堆栈溢出,但我不知道它是否适用于我的情况 here
【问题讨论】: