From 6c9271d42716c9de313b1467b841aa4ed4561b4d Mon Sep 17 00:00:00 2001 From: Sebastian Markbage Date: Tue, 12 Sep 2023 23:34:03 -0400 Subject: [PATCH] Track keyPath when rendering through a SuspenseBoundary --- packages/react-server/src/ReactFizzServer.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/react-server/src/ReactFizzServer.js b/packages/react-server/src/ReactFizzServer.js index 8b3f25c805907..4d035062bfa25 100644 --- a/packages/react-server/src/ReactFizzServer.js +++ b/packages/react-server/src/ReactFizzServer.js @@ -737,6 +737,8 @@ function renderSuspenseBoundary( props: Object, ): void { pushBuiltInComponentStackInDEV(task, 'Suspense'); + + const prevKeyPath = task.keyPath; const parentBoundary = task.blockedBoundary; const parentSegment = task.blockedSegment; @@ -798,6 +800,7 @@ function renderSuspenseBoundary( newBoundary.resources, ); } + task.keyPath = keyPath; try { // We use the safe form because we don't handle suspending here. Only error handling. renderNode(request, task, content, -1); @@ -851,6 +854,7 @@ function renderSuspenseBoundary( } task.blockedBoundary = parentBoundary; task.blockedSegment = parentSegment; + task.keyPath = prevKeyPath; } // We create suspended task for the fallback because we don't want to actually work