首页 > 解决方案 > 表单验证后 isValid 保持为假

问题描述

我有一个自定义验证函数,但即使它没有返回错误,表单仍然无效。

我将以下属性传递给 Formik:

validate={({ import_files }) => {
    return [...import_files.values()].length === 0
        ? { import_files: 'Please choose a file to import' }
        : {};
}}
onSubmit={onSubmit}
initialValues={{ import_files: new Map([]) }}

这是验证后formik对象的控制台日志

如您所见,该字段已被触摸,它没有错误但isValid仍然是false. 为什么表格仍然无效?

标签: javascriptreactjsformik

解决方案


isValid有时会出人意料。您应该考虑将验证检查切换到errors数组。

如果没有错误,errors那么一切正常。

const isValid = !Object.keys(errors).length

您可以在这个未解决的问题中找到更多数据: https ://github.com/jaredpalmer/formik/issues/1116


推荐阅读