mirror of
https://github.com/facebook/react.git
synced 2025-11-01 09:12:30 +00:00
[Fizz] Client render the nearest child or parent suspense boundary if replay errors or is aborted (#27386)
Based on #27385. When we error or abort during replay, that doesn't actually error the component that errored because that has already rendered. The error only affects any child that is not yet completed. Therefore the error kind of gets thrown at the resumable point. The resumable point might be a hole in the replay path, in which case throwing there errors the parent boundary just the same as if the replay component errored. If the hole is inside a deeper Suspense boundary though, then it's that Suspense boundary that gets client rendered. I.e. the child boundary. We can still finish any siblings. In the shell all resumable points are inside a boundary since we must have finished the shell. Therefore if you error in the root, we just simply just turn all incomplete boundaries into client renders.
This commit is contained in:
@@ -472,7 +472,7 @@
|
||||
"484": "A Server Component was postponed. The reason is omitted in production builds to avoid leaking sensitive details.",
|
||||
"485": "Cannot update form state while rendering.",
|
||||
"486": "It should not be possible to postpone at the root. This is a bug in React.",
|
||||
"487": "Did not expect to see a Suspense boundary in this slot. The tree doesn't match so React will fallback to client rendering.",
|
||||
"487": "We should not have any resumable nodes in the shell. This is a bug in React.",
|
||||
"488": "Couldn't find all resumable slots by key/index during replaying. The tree doesn't match so React will fallback to client rendering.",
|
||||
"489": "Expected to see a component of type \"%s\" in this slot. The tree doesn't match so React will fallback to client rendering.",
|
||||
"490": "Expected to see a Suspense boundary in this slot. The tree doesn't match so React will fallback to client rendering."
|
||||
|
||||
Reference in New Issue
Block a user