【发布时间】:2022-01-14 00:31:14
【问题描述】:
我在日期选择器中添加了 yup 验证,所以如果我点击提交现在会发生什么,它说字段需要 无效日期! 但我的任务需要设置验证,例如只有在以下情况下才会生成错误该日期大于我在 max 中添加的今天的日期,并且它也没有添加到任何 .required("Required!") 事物中,但不确定它为什么按要求工作!我不需要设置为必填字段!
const today = moment().format("YYYY-MM-DD");
const validationSchema = yup.object().shape({
date_of_birth: yup
.date()
.max(today, "DOB cannot be greater than today's date")
.typeError("Invalid Date!")
});
export default function MaterialUIPickers() {
const IndivisualForm = useFormik({
initialValues: {
date_of_birth: null
},
enableReinitialize: true,
validationSchema,
onSubmit: (values) => {
}
});
const handleChangeDate = (date) => {
IndivisualForm.setFieldValue(
"date_of_birth",
moment(date).format("YYYY-MM-DD")
);
};
return (
<MuiPickersUtilsProvider utils={DateFnsUtils}>
<Grid container justifyContent="space-around">
<KeyboardDatePicker
disableToolbar
variant="inline"
format="MM/dd/yyyy"
margin="normal"
id="date-picker-inline"
label="Date picker inline"
value={IndivisualForm.values.date_of_birth}
error={Boolean(IndivisualForm.errors.date_of_birth)}
helperText={IndivisualForm.errors.date_of_birth}
onChange={handleChangeDate}
maxDate={today}
KeyboardButtonProps={{
"aria-label": "change date"
}}
/>
<Button
color="primary"
variant="contained"
type="submit"
onClick={IndivisualForm.handleSubmit}
>
Submit
</Button>
</Grid>
</MuiPickersUtilsProvider>
);
}
【问题讨论】:
标签: javascript reactjs yup