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