1

使用https://react-jsonschema-form.readthedocs.io来呈现基于 json 模式的表单,我可以为每个字段定义验证。这很好也很简单,我唯一要寻找的是一种创建更有意义的完整验证错误的方法。

例如

架构:

{
  "title": "Contextualized errors",
  "type": "object",
  "properties": {
    "firstName": {
      "type": "string",
      "title": "First name",
      "minLength": 8,
      "pattern": "\\d+"
    },
  }
}

这提供了验证并返回如下错误文本:

  • firstName:不应短于 8 个字符
  • firstName: 应该匹配模式 "\d+"

我想将第一部分更改为“名字”,甚至翻译它。我怎么可能做到这一点?


编辑

我认为可以定义firstNameas First name,这需要将 formData 对象重新映射到实际键的一些“复杂”。

4

1 回答 1

0

好的,因此您可以为此定义自己的验证错误。

validate = (formData, errors) => {

 if(formData.firstName.length<8){
     errors.firstName.addError('First name can be of 8 or more character long') // your custom error
   }
 else if(formData.firstName.search(regexPattern)){
     errors.firstName.addError('First name should match your given pattern')
  }

  return errors;

 };

然后只需将此函数传递给您的表单。

  <Form
        ...
        validate={this.validate}
        showErrorList={false}
        .
        .
        .
      />
于 2020-06-04T13:40:16.590 回答