【问题标题】:React JSON Schema DependenciesReact JSON Schema 依赖项
【发布时间】:2020-02-15 20:42:18
【问题描述】:

我正在尝试编写一个 JSONSchema 以与 react-jsonschema-form 一起使用,但无法让依赖项以正确的顺序工作。

  "properties":{
      "condition": {
          "type":"string",
          "enum":["1","2"],
           "options": {
           "dependencies":[
              {"id":"one","value":"1"},
              {"id":"two","value":"2"}
              ]
           }
      },
      "one":{
          "id":"one",
          "type":"number"
          },
      "two":{
          "id":"two",
          "type":"string"
      },
      "misc": {
        "type": "string"
      }
  },
  "type": "object"
}

在上面,我希望有效的表单数据是......

{
  "condition": "1",
  "one": 123
  "misc": "abc"
}

或者如果条件是“2”...

{
  "condition": "2",
  "two": "something",
  "misc": "abc"
}

但是,依赖项部分似乎并没有像我希望的那样工作。所以无论条件值如何,“一”和“二”都可以存在。

{
  "condition": "1",
  "one": 123,
  "two": "something",
  "misc": "abc"
}

如何更改 JSON 架构,以便根据“条件”只允许相应的字段。

注意...顺序确实在提供的架构中很重要。请参阅https://rjsf-team.github.io/react-jsonschema-form/ 获取演示。

【问题讨论】:

    标签: json jsonschema react-jsonschema-forms jsonforms


    【解决方案1】:

    您必须使用oneOf 运算符。 它需要多个依赖项,如果其中一个为真, json 是有效的。

    例子:

    "oneOf":[
        {
          "required": [
            "name",
            "dateOfBirth"
          ]
        },
        {
          "required": [
            "name",
            "age"
          ]
        }
    

    更多例子可以在here找到。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多