react-jsonschema-form
react-jsonschema-form copied to clipboard
Problem with contains condition in the array field and conditionally rendered subschema with the integer keys when liveOmmit and omitExtraData are set to true
Prerequisites
- [X] I have searched the existing issues
- [X] I understand that providing a SSCCE example is tremendously useful to the maintainers.
- [X] I have read the documentation
- [X] Ideally, I'm providing a sample JSFiddle, Codesandbox.io or preferably a shared playground link demonstrating the issue.
What theme are you using?
mui
Version
5.13.2
Current Behavior
I have hit a strange bug, not sure where to look, so I will post working and not working schemas. Hopefully, the maintainers will have an idea of what is wrong.
#1. if-then with contains. The conditionally rendered schema has string keys. This works.
#2. if-then with contains. The conditionally rendered schema has integer keys. This does not work.
Both work well when liveOmmit and omitExtraData are set to false
Expected Behavior
I would expect that both scenarios work with turned on liveOmmit and omitExtraData. However it seems that they reset the field that is used for rendering the dependent schema, but only if that field options match the keys in the dependent schema. This looks like a bug to me
Steps To Reproduce
Environment
- OS: MacOsx
- Node: latest
- npm: latest
Anything else?
No response
@magaton The issue might be in one of three places:
In @rjsf/utils: either the pathToSchema() is generating a bad or missing schema path in which case MAYBE #3916 will fix it? Possibly the retrieveSchema() might not be parsing properly for the second condition? Or maybe the getDefaultFormState() function is behaving differently for these two situations
OR perhaps our code for omitting live data in the Form is buggy?
Anyways, if you are able to debug this and figure out where the bug is, we'd love fix! Thanks