rjsf-team/react-jsonschema-form

anyOf/oneOf keeping undefined property of old option

Fermée

#3 711 ouverte le 31 mai 2023

 (1 commentaire) (2 réactions) (1 personne assignée)TypeScript (2 136 forks)batch import
bughelp wanted

Métriques du dépôt

Stars
 (13 175 étoiles)
Métriques de merge PR
 (Merge moyen 3j 17h) (32 PRs mergées en 30 j)

Description

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

Guide contributeur