rjsf-team/react-jsonschema-form

anyOf/oneOf keeping undefined property of old option

Closed

#3711 aperta il 31 mag 2023

Vedi su GitHub
 (1 commento) (2 reazioni) (1 assegnatario)TypeScript (2136 fork)batch import
bughelp wanted

Metriche repository

Star
 (13.175 star)
Metriche merge PR
 (Merge medio 2g 9h) (36 PR mergiate in 30 g)

Descrizione

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

Guida contributor