Fix maximum call stack size exceeded error on Tab
component when using as={Fragment}
#1826
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.
The
forceRerender
is necessary when theTab
is rendered but thePanel
isn't rendered yet (or vice versa) so that we can apply the correct attributes to link them together (e.g.:aria-controls
).However, if you are using a render prop, the contents is technically a bit different and it seems like we are calling the
forceRerender
while React is already updating which means that it has to update again, and again, and again.Scheduling the
forceRerender
for the next frame allows React to complete the update and then we canforceRerender
outside of the already going on update.