Fix ReferenceManyField throws error after insert #5877
Merged
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.
This fixes a nasty bug that is hard to reproduce.
The bug occurs when a
ReferenceManyField
renders a second time after the reference data has been updated on the server-side, and if the children of the ReferencenceManyField don't work with an emptyrecord
. This causes a "Something Went Wrong" screen in production.A more specific bug repro:
PostEdit
, change the final tab towith
The cause is a lack of synchronization between the ids and the data in
useGetManyReference
, due to two Redux selectors working on one another (i.e. one after the other).The fix is similar to #5577 on
useGetList
: we don't execute one selector after another, we execute them both at the same time.