rjsf-team/react-jsonschema-form

anyOf/oneOf keeping undefined property of old option

已關閉

#3,711 建立於 2023年5月31日

 (1 則留言) (2 個反應) (1 位負責人)TypeScript (2,136 個分叉)batch import
bughelp wanted

倉庫指標

星標
 (13,175 顆星)
PR 合併指標
 (平均合併 3天 17小時) (30 天內合併 32 個 PR)

描述

Prerequisites

What theme are you using?

core

Version

5.x

Current Behavior

When editing a field in oneOf/anyOf property and then switching to the other schema, the formData still keeps the old property but as undefined. This causes issues when submitting the form and the schema has set additionalProperties: false. Here is a simple rjsf playground and example schema:

{
  "type": "object",
  "anyOf": [
    {
      "additionalProperties": false,
      "properties": {
        "lorem": {
          "type": "string"
        }
      }
    },
    {
      "additionalProperties": false,
      "properties": {
        "ipsum": {
          "type": "string"
        }
      }
    }
  ]
}

The function sanitizeDataForNewSchema is where the old formData fields are set to undefined. I think a simple solution would be to filter out all undefined fields after all the logic in sanitizeDataForNewSchema is done.

Expected Behavior

When switching to other schema it would clear out any old fields.

Steps To Reproduce

No response

Environment

- OS:
- Node:
- npm:

Anything else?

No response

貢獻者指南