wen*_*eno 4 javascript validation reactjs yup formik
我希望该favoriteAlcohol字段仅在props.isAdult传递给组件是true.
Yup.object().shape({
favoriteAlcohol: Yup.string().when(props.isAdult, {
is: true,
then: Yup.string().required(),
}),
name: Yup.string().required('Nazwa jest wymagana'),
})
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
上面的解决方案不起作用,因为when将表单的“键”作为第一个参数,并且我通过了 prop。
一个可行的解决方案是映射prop.isAdult到isAdult表单值字段,然后我可以将其'isAdult'作为第一个参数传递给when()函数。不过,这不是最好的解决方案。
const favoriteAlcohol = props.isAdult ? {favoriteAlcohol: Yup.string().required()} : {}
Yup.object().shape({
...favoriteAlcohol,
name: Yup.string().required('Nazwa jest wymagana'),
})
Run Code Online (Sandbox Code Playgroud)
如果 props.isAdult = true 那么,它将使
Yup.object().shape({
favoriteAlcohol: Yup.string().required(),
name: Yup.string().required('Nazwa jest wymagana'),
})
Run Code Online (Sandbox Code Playgroud)
否则会使
Yup.object().shape({
name: Yup.string().required('Nazwa jest wymagana'),
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
470 次 |
| 最近记录: |