我有
StartIntensity: yup.number(),
EndIntensity: yup
.number()
.when(
"StartIntensity",
(StartIntensity: number, schema: any) => {
return !!StartIntensity
? schema.moreThan(
StartIntensity,
"Max should be > min"
)
: schema;
}
),
Run Code Online (Sandbox Code Playgroud)
但我需要这样的东西
StartIntensity: yup.number(),
EndIntensity: yup
.number()
.when(
"StartIntensity, EndIntensity",
(StartIntensity: number, EndIntensity: number, schema: any) => {
return !!StartIntensity && StartIntensity !== EndIntensity
? schema.moreThan(
StartIntensity,
"Max should be > min"
)
: schema;
}
),
Run Code Online (Sandbox Code Playgroud)
但上面的代码不能正常工作。是否有可能通过其他方式执行此验证?
Ant*_*ni4 20
在你的情况下.when() 的第一个参数应该是一个键数组:
StartIntensity: yup.number(),
EndIntensity: yup
.number()
.when(
["StartIntensity", "EndIntensity"],
(StartIntensity: number, EndIntensity: number, schema: any) => {
return !!StartIntensity && StartIntensity !== EndIntensity
? schema.moreThan(
StartIntensity,
"Max should be > min"
)
: schema;
}
),
Run Code Online (Sandbox Code Playgroud)
键:字符串 | 大批
如果上面的代码抛出“循环依赖”错误(我认为会),请尝试以下代码:
StartIntensity: yup.number(),
EndIntensity: yup
.number()
.when('StartIntensity', (StartIntensity, schema) => {
return schema.test({
test: EndIntensity => !!StartIntensity && EndIntensity > StartIntensity,
message: "Max should be > min"
})
}),
Run Code Online (Sandbox Code Playgroud)
或者你也可以使用ref:
StartIntensity: yup.number(),
EndIntensity: yup
.number()
.moreThan(yup.ref('StartIntensity'), "Max should be > min")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13990 次 |
| 最近记录: |