Reactjs 使用Formik/Yup进行可选文件验证
我想验证文件输入如果选择了文件,我找到了Formik/Yup的解决方案,但即使未选择文件,它也会验证Reactjs 使用Formik/Yup进行可选文件验证,reactjs,forms,formik,yup,Reactjs,Forms,Formik,Yup,我想验证文件输入如果选择了文件,我找到了Formik/Yup的解决方案,但即使未选择文件,它也会验证 avatar: Yup.mixed() .test("fileSize", "File is too large", value => { return value && value.size <= FILE_SIZE; }) .test( "fileFormat", "Unsupported Format"
avatar: Yup.mixed()
.test("fileSize", "File is too large", value => {
return value && value.size <= FILE_SIZE;
})
.test(
"fileFormat",
"Unsupported Format",
value => value && SUPPORTED_FORMATS.includes(value.type)
)
avatar:Yup.mixed()
.test(“文件大小”,“文件太大”,值=>{
返回值&&value.size值&&SUPPORTED_格式。包括(value.type)
)
当我输入其他输入时,它会触发验证,我只想在文件存在的情况下触发它,因为avatar是可选的!问题是测试仅在
值存在的情况下返回true
(意味着它会验证)。您必须添加一个条件以在值不存在的情况下接受值(即:为空
或未定义
)
我遇到了完全相同的问题,我这样解决:
avatar:Yup.mixed()
.测试(
“文件大小”,
“文件太大”,
value=>!value | |(value&&value.size!value | |(value=>value&&SUPPORTED_格式。包括(value.type))
)
您可以共享代码沙盒吗?Formik,那么您使用了哪种方法?您尝试过吗?