如何解决反应 - 反应最终形式验证
在使用记录级验证时,我有一个关于 react-final 表单错误消息的问题。我在 FormFilterFields 组件中有以下字段。
字段名称:
export const fieldNames = {
password: "field.password"
};
字段:
<Field name={fieldNames.password}>
{({ input,Meta }) => {
return (
<div className={styles.textInputContainer}>
<TextInput
type={"password"}
label={"password"}
value={input.value}
onChange={(event)=> {
input.onChange(event)
}}
error={Meta.error}
/>
</div>
);
}}
</Field>
表格:
<Form
onSubmit={() => {}}
initialValues={this.props.formValues}
decorators={[formFilterFieldsDecorator]}
validate={values => {
const valuesObject: any = values
const validationErrors = { errors: {} };
if (valuesObject && valuesObject.field.password && valuesObject.field.password.length < 6){
validationErrors.errors.field.password = "password is too short"; //errors.field.password is undefined here
}
return validationErrors;
}}
render={({
handleSubmit,submitting,pristine,values,form,invalid
}) => (
<form onSubmit={handleSubmit}>
<FormFilterFields
form={form}
onSubmit={event => this.props.onHandleSubmit(event,values)}
onReset={event => this.props.onHandleReset(event,form)}
/>
<pre>{JSON.stringify(values)}</pre>
</form>
)}
/>
“字段.密码”
我查看了一些示例,但没有骰子。另一种方法是字段级验证,这是我作为解决方案的一部分的最后手段。
任何帮助将不胜感激
谢谢
解决方法
你尝试了吗
validationErrors.errors['field.password'] = "password is too short";
编辑 试试这个
if (!values.field || !values.field.password) {
errors.field = {password: 'Required'};
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。