fix(4756): object reference sharing in arrays with discriminated unions and minItems #4757
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Reasons for making this change
This change fixes #4756 where array items shared object references when using discriminated unions (
oneOf
) combined withminItems > 0
and undefined initial form data.Problem
When arrays needed to be populated to meet
minItems
requirements, theArray.fill()
method created shared object references instead of independent instances. This caused form field changes in one array item to unintentionally affect other array items.Impact
minItems > 0
+ undefined initial form dataTesting
getDefaultFormStateTest.ts
Checklist
npx nx run-many --target=build --exclude=@rjsf/docs && npm run test:update
to update snapshots, if needed.