react-jsonschema-form oneOf不会在更改时更新属性

问题描述

在这里的目标是拥有一个非必需的oneOf,其中两个选项都有一个设置的名称。我的代码看起来像这样:

{
  "title": "A registration form","description": "A simple form example.","type": "object","deFinitions": {
    "first_def": {
      "type": "object","properties": {
        "name": {
          "type": "string","default": "first","readOnly": true
        },"params": {
          "type": "string"
        }
      },"required": [
        "name","params"
      ],"additionalProperties": false
    },"second_def": {
      "type": "object","default": "second","size": {
          "type": "string","enum": [
            "1","2","3"
          ]
        },"params": {
          "type": "string","default": ""
        }
      },"size"
      ],"additionalProperties": false
    }
  },"properties": {
    "first_or_second": {
      "oneOf": [
        {
          "$ref": "#/deFinitions/first_def","title": "first"
        },{
          "$ref": "#/deFinitions/second_def","title": "second"
        }
      ]
    }
  }
}

我希望用户能够选择第一个name值将变为只读的“ first”)或第二个(name值将变为只读的) -仅“第二”)。 如果将此代码粘贴到rjsf playground中,则会发现存在两个问题。

  1. 如果您从first切换到second,它将设置名称,但是一旦您切换回来,它将不会更新该名称。因此,一旦将其设置为second,无论如何它将保持second。如果选择它,它还将存储second(大小)中无关的参数,然后切换到first
  2. first_or_second属性不是必需的,但它仍将使用first(但没有必需的名称)呈现选择。

我的问题是,如何启用认值以使其达到预期效果?当我将选择的选项从name更改回second时,为什么first值没有更新?当我切换到不具有该字段的选项时,如何从size删除多余的formData值?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)