我正在尝试为现场级别验证设置各种验证检查。
给出我的方法:
export const maxLength = max => value =>
value && value.length > max ? `Must be ${max} characters or less` : undefined;
已导入并附加到Field组件上
<Field type="text" name="userName" component={Input} label="Username" validate={[maxLength(8)]} />
它总是失败。它可以正常编译,但是每当我超过最大长度时,我都会在控制台中收到此错误:
现在,如果我要创建一个只调用此方法的const,类似于redux-forms示例:
export const maxLength8 = maxLength(8)
并将其放在Field组件的验证参数中可以正常工作。
如果我尝试添加另一个需要的验证,我也会遇到相同的错误:
<Field type="text" name="userName" component={Input} label="Username" validate={[required, maxLength(8)]} />
如果我这样称呼它,则再次可以正常工作:
<Field type="text" name="userName" component={Input} label="Username" validate={[required, maxLength15]} />
我正在尝试避免针对每种可能遇到的情况为maxLength创建不同的函数,并且只有一个通用函数可以在创建的每种表单上调用。由于这是内部CMS类型系统,因此我们正在开发中,在很多情况下,我们可能会使用最大/最小类型长度。
我提前感谢人们对此的关注。