From 72f59952babd02ccd5cb1a3bf260afdb86f5038d Mon Sep 17 00:00:00 2001 From: Luna Ruan Date: Wed, 7 Sep 2022 10:21:30 -0700 Subject: [PATCH] [DevTools][Bugfix] Don't hide fragment if it has a key (#25197) resolves #25187 --- We shouldn't hide fragments that have a key because this is important information that the user might want in the future. --- packages/react-devtools-shared/src/backend/renderer.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/react-devtools-shared/src/backend/renderer.js b/packages/react-devtools-shared/src/backend/renderer.js index df1c5d53e077..3a893060da0a 100644 --- a/packages/react-devtools-shared/src/backend/renderer.js +++ b/packages/react-devtools-shared/src/backend/renderer.js @@ -468,8 +468,9 @@ export function getInternalReactConstants( return type; case HostPortal: case HostText: - case Fragment: return null; + case Fragment: + return 'Fragment'; case LazyComponent: // This display name will not be user visible. // Once a Lazy component loads its inner component, React replaces the tag and type. @@ -981,7 +982,7 @@ export function attach( // NOTICE Keep in sync with get*ForFiber methods function shouldFilterFiber(fiber: Fiber): boolean { - const {_debugSource, tag, type} = fiber; + const {_debugSource, tag, type, key} = fiber; switch (tag) { case DehydratedSuspenseComponent: @@ -993,13 +994,14 @@ export function attach( return true; case HostPortal: case HostText: - case Fragment: case LegacyHiddenComponent: case OffscreenComponent: return true; case HostRoot: // It is never valid to filter the root element. return false; + case Fragment: + return key === null; default: const typeSymbol = getTypeSymbol(type);