我有一个自定义的验证功能,但是即使它没有返回错误,表单仍然无效。
我正在将以下属性传递给Formik:
Select *
From (
Select A.stu_id
,B.*
From (
Select *
,RN = row_number() over (partition by stu_id order by course_name)
from YourTable
) A
Cross Apply ( values (concat('course_',RN),course_name)
,(concat('staff_',RN),staff_name)
) B(Item,Value)
) src
Pivot (max(Value) for Item in ([Course_1],[Staff_1],[Course_2],[Staff_2],[Course_3],[Staff_3] )) pvt
Here is a console log of the formik object after validation
如您所见,该字段已被触摸,它没有错误,但是validate={({ import_files }) => {
return [...import_files.values()].length === 0
? { import_files: 'Please choose a file to import' }
: {};
}}
onSubmit={onSubmit}
initialValues={{ import_files: new Map([]) }}
仍然是isValid
。
为什么表格仍然无效?
答案 0 :(得分:0)
isValid
有时会无法正常工作。
您应该考虑将验证检查切换为errors
数组。
如果errors
中没有错误,则一切正常。
const isValid = !Object.keys(errors).length
您可以在此公开问题中找到更多数据文件: https://github.com/jaredpalmer/formik/issues/1116