我正在尝试编写一个与react-jsonschema-form一起使用的JSONSchema,但是在使依赖项正常工作并按正确的顺序时遇到问题。
"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/用于演示。
最佳答案
您必须使用oneOf
运算符。
它需要多个依赖项,如果其中一个为真,
json 有效。
示例:
"oneOf":[
{
"required": [
"name",
"dateOfBirth"
]
},
{
"required": [
"name",
"age"
]
}
更多示例可见here .
关于json - React JSON 架构依赖关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60242933/