const validationSchema = Yup.object().shape({
newPassword: Yup.string().min(8, 'Password must be at least 8 characters');
});
Run Code Online (Sandbox Code Playgroud)
我只想在 newPassword 字段不为空时进行验证检查。我怎么办?
Joa*_*gel 13
替代使用测试:
const validationSchema = Yup.object().shape({
newPassword: Yup.string().test(
'empty-or-8-characters-check',
'Password must be at least 8 characters',
password => !password || password.length >= 8,
),
});
Run Code Online (Sandbox Code Playgroud)
Dip*_* KC 11
解决这个问题有不同的方法。
使用测试
const validationSchema = Yup.object().shape({
newPassword: Yup.string().test('empty-check','Password must be at least 8 characters',password=>password.length==0
Run Code Online (Sandbox Code Playgroud)
使用时
const validationSchema = Yup.object().shape({
newPassword: Yup.string().when('newPassword',{
is:(password)=>password.length>0
then: Yup.string().min(8, 'Password must be at least 8 characters');
});
Run Code Online (Sandbox Code Playgroud)
Sha*_*hko 10
替代使用trim()
const validationSchema = Yup.object().shape({
newPassword: Yup.string().trim().required("Password must be at least 8 characters"),
});
Run Code Online (Sandbox Code Playgroud)
小智 7
我自己解决这个问题的方法是首先添加 .nullable() 然后将 .transform() 空字符串添加为 null。
const validationSchema = Yup.object().shape({
newPassword: Yup
.string()
.nullable()
.transform((v, o) => (o === '' ? null : v))
.min(8, 'Password must be at least 8 characters')
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13369 次 |
| 最近记录: |