【问题标题】:RFJS validation show error message with key, not labelRFJS 验证显示带键的错误消息,而不是标签
【发布时间】:2020-06-04 08:54:04
【问题描述】:

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

例如

架构:

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

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

  • 名字:不应少于 8 个字符
  • firstName:应该匹配模式“\d+”

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


编辑

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

【问题讨论】:

    标签: reactjs jsonschema react-jsonschema-forms


    【解决方案1】:

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

    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}
            .
            .
            .
          />
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-07-07
      • 1970-01-01
      • 2023-04-07
      • 1970-01-01
      • 1970-01-01
      • 2014-09-23
      • 1970-01-01
      • 2012-12-31
      相关资源
      最近更新 更多