首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >React - react-final-form验证

React - react-final-form验证
EN

Stack Overflow用户
提问于 2021-05-12 05:29:53
回答 1查看 532关注 0票数 0

在使用记录级验证时,我有一个关于react-final表单错误消息的问题。我在FormFilterFields组件中有以下字段。

字段名称:

代码语言:javascript
复制
export const fieldNames = {
  password: "field.password"
};

字段:

代码语言:javascript
复制
            <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>

表格:

代码语言:javascript
复制
     <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>
        )}
      />

那么从本质上讲,您应该如何设置字段名的错误消息,如下所示:

"field.password“

我已经查看了一些示例,但没有dice.The替代方案是字段级别的验证,这是我作为解决方案的一部分而采取的最后手段。

任何帮助都将不胜感激

谢谢

EN

回答 1

Stack Overflow用户

发布于 2021-05-12 05:35:46

你试过了吗

代码语言:javascript
复制
validationErrors.errors['field.password'] = "password is too short";

编辑尝试此操作

代码语言:javascript
复制
if (!values.field || !values.field.password) {
      errors.field = {password: 'Required'};
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67494602

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档