问题描述
SCHEMA = object().shape({
...
someField: string().required(validation_keys.required),...
});
我在我的组件中使用了 useFormik
:
const formik = useFormik({
initialValues: values,onSubmit: ...,validationSchema: SCHEMA,});
我正在寻找一种将参数传递给我的 SCHEMA 的方法,因此当参数为 someField
时需要 true
...我阅读了上下文,也尝试这样做使用 when()
,但这些都不适合我...
我的目标是基于组件 prop 验证 someField
,而不是来自 formik 的其他字段。类似于下面的例子:
validationSchema={yup.object().shape({
someField: yup
.string()
.when("xxx",{
is: true,then: yup.string().required("required"),otherwise: yup.string(),})
})
}
xxx
应该传递给我使用 useFormik 的 React 组件中的验证模式
解决方法
你可以这样做。
var now = new Date();
if (now.getMonth() == 11) {
var current = new Date(now.getFullYear() + 1,now.getDate());
} else {
var current = new Date(now.getFullYear(),now.getMonth() + 1,now.getDate());
}
Here 工作代码和盒子。