我在 Formik 表单中遇到有关日期字段的 Yup 验证问题。我想阻止用户选择未来的日期。目前,验证仅在我单击保存按钮时触发,但我希望如果选择未来日期,则立即抛出错误。(就像其他文本字段是的验证)
这是我设置验证的方法:
模式 = Yup.date() .必填(
${item.validation.required.message}
)
.max(new Date(), "没有未来日期,请选择其他日期");
常量validationSchema = Yup.object().shape(schema);
我希望验证能够防止用户在选择未来日期后立即选择。但是,验证似乎仅在单击“保存”按钮后才会发生。
有人可以指导我如何修改验证以在选择未来日期时立即抛出错误吗?
确保您的表达方式正确无误。我发现您没有将 Shape 中定义的表达式视为对象。如果您按如下方式使用,您的问题将得到解决。详细用法可以看官方文档。
const validationSchema = Yup.object({
date: Yup.date().max(new Date(),'You cannot choose a future date!').required('Date field is required!'),
});