如何在单个表单字段上构建异步验证,这也可以触发文件级别错误,但不使用也触发onSubmit的asyncValidation?
我有一个Redux表单,用户可以选择:
a)手动输入地址详细信息
b)填写他们的社会安全号码并从API获取所有详细信息并获取预填充的redux表单字段(wohoo,节省时间!)
c)通过选中删除所有个人详细信息字段的复选框,100%匿名。
鉴于这种设置,触发onSubmit和onBlur的asyncValidator看起来很棘手,如果获得所需的详细信息并且表单得到预填充,我不希望它们多次触发。但是,如果用户提交了无效的社会安全号码,我想触发一个字段错误。
如果您只想验证单个字段,则可以使用验证函数数组传递prop验证,如果有效,则返回false;如果基于您的逻辑,则返回无效字符串错误。并将阻止提交,或将在提交时显示错误。
const required = (value) => (value ? false : 'Required')
const isSSN = (value) => (willBeTrueIfSSN ? false : 'Invalid SSN')
<Field name="ssn" validate={[isSSN, required]} {...rest} />
redux-form docs中的一些很好的例子:https://redux-form.com/7.2.3/examples/fieldlevelvalidation/