异步验证单个redux表单字段,但不提交

问题描述 投票:0回答:1

Question

如何在单个表单字段上构建异步验证,这也可以触发文件级别错误,但不使用也触发onSubmit的asyncValidation?

Background to question

我有一个Redux表单,用户可以选择:

a)手动输入地址详细信息

b)填写他们的社会安全号码并从API获取所有详细信息并获取预填充的redux表单字段(wohoo,节省时间!)

c)通过选中删除所有个人详细信息字段的复选框,100%匿名。

鉴于这种设置,触发onSubmit和onBlur的asyncValidator看起来很棘手,如果获得所需的详细信息并且表单得到预填充,我不希望它们多次触发。但是,如果用户提交了无效的社会安全号码,我想触发一个字段错误。

redux-form
1个回答
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 docs中的一些很好的例子:https://redux-form.com/7.2.3/examples/fieldlevelvalidation/

© www.soinside.com 2019 - 2024. All rights reserved.