[bug]: empty result of lazy component doubles next node#4075
Open
aleksandrjet wants to merge 1 commit intopreactjs:mainfrom
Open
[bug]: empty result of lazy component doubles next node#4075aleksandrjet wants to merge 1 commit intopreactjs:mainfrom
aleksandrjet wants to merge 1 commit intopreactjs:mainfrom
Conversation
321a593 to
b3ed681
Compare
Member
|
Basically the reason for reserving the node during hydration is that we need a node to continue hydrating from when the Suspense boundary resolves, we can't predict that the result will be empty so this is kind of a necessity, we could maybe do with a heuristic where we add a I have been looking at the reverse case in #4438 where rather than 1 DOM-node being returned, a Fragment is returned with multiple DOM nodes. |
Closed
Thompson1985
approved these changes
Oct 6, 2024
Thompson1985
approved these changes
Oct 6, 2024
b3ed681 to
00ff574
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
I added test, which shows that empty result of
Lazycomponent doubles next node while hydration.This seems, it happens because error, when rendering a lazy component:
Maybe we incorrect handle this error. I don't understand, why we need to remove last node from
excessDomChildrenand assing a value ofoldDomtonewVNode._domI tried to add additional handling for this error, but it breaks some of tests for suspense-hydration, despite the fact current test begun work
I am looking for a solution and i need help of community. Now i think it can not fix by additional error handling, because at moment of processing node when hydration we don't know, what will return Lazy
P.S. I understand, that lazy component with empty result is not the best idea. But it give unpredictable result with doubles nodes. I think, it should working or throw error