You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Don't modify keyPath until right before recursive renderNode call (#27366)
Currently, if a component suspends, the keyPath has already been
modified to include the identity of the component itself; the path is
set before the component body is called (akin to the begin phase in
Fiber). An accidental consequence is that when the promise resolves and
component is retried, the identity gets appended to the keyPath again,
leading to a duplicate node in the path.
To address this, we should only modify contexts after any code that may
suspend. For maximum safety, this should occur as late as possible:
right before the recursive renderNode call, before the children are
rendered.
I did not add a test yet because there's no feature that currently
observes it, but I do have tests in my other WIP PR for useFormState:
#27321
DiffTrain build for commit d07921e.
Copy file name to clipboardExpand all lines: compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react-test-renderer/cjs/ReactTestRenderer-dev.js
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -23994,7 +23994,7 @@ function createFiberRoot(
23994
23994
return root;
23995
23995
}
23996
23996
23997
-
var ReactVersion = "18.3.0-canary-7a3cb8f9c-20230912";
23997
+
var ReactVersion = "18.3.0-canary-d07921eed-20230912";
Copy file name to clipboardExpand all lines: compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react-test-renderer/cjs/ReactTestRenderer-prod.js
+2-2Lines changed: 2 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -8617,7 +8617,7 @@ var devToolsConfig$jscomp$inline_1027 = {
8617
8617
throwError("TestRenderer does not support findFiberByHostInstance()");
8618
8618
},
8619
8619
bundleType: 0,
8620
-
version: "18.3.0-canary-7a3cb8f9c-20230912",
8620
+
version: "18.3.0-canary-d07921eed-20230912",
8621
8621
rendererPackageName: "react-test-renderer"
8622
8622
};
8623
8623
varinternals$jscomp$inline_1226={
@@ -8648,7 +8648,7 @@ var internals$jscomp$inline_1226 = {
Copy file name to clipboardExpand all lines: compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react-test-renderer/cjs/ReactTestRenderer-profiling.js
+2-2Lines changed: 2 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -9043,7 +9043,7 @@ var devToolsConfig$jscomp$inline_1069 = {
9043
9043
throwError("TestRenderer does not support findFiberByHostInstance()");
9044
9044
},
9045
9045
bundleType: 0,
9046
-
version: "18.3.0-canary-7a3cb8f9c-20230912",
9046
+
version: "18.3.0-canary-d07921eed-20230912",
9047
9047
rendererPackageName: "react-test-renderer"
9048
9048
};
9049
9049
varinternals$jscomp$inline_1267={
@@ -9074,7 +9074,7 @@ var internals$jscomp$inline_1267 = {
0 commit comments