diff --git a/packages/react-devtools-shared/src/backend/fiber/renderer.js b/packages/react-devtools-shared/src/backend/fiber/renderer.js index 3214c8392285..bd365963181f 100644 --- a/packages/react-devtools-shared/src/backend/fiber/renderer.js +++ b/packages/react-devtools-shared/src/backend/fiber/renderer.js @@ -6859,6 +6859,8 @@ export function attach( // TODO Show custom UI for Cache like we do for Suspense // For now, just hide state data entirely since it's not meant to be inspected. + // Make sure delete, rename, and override of state handles all tags for which + // we show state. const showState = tag === ClassComponent || tag === IncompleteClassComponent; @@ -7815,8 +7817,13 @@ export function attach( } break; case 'state': - deletePathInObject(instance.state, path); - instance.forceUpdate(); + switch (fiber.tag) { + case ClassComponent: + case IncompleteClassComponent: + deletePathInObject(instance.state, path); + instance.forceUpdate(); + break; + } break; } } @@ -7893,8 +7900,13 @@ export function attach( } break; case 'state': - renamePathInObject(instance.state, oldPath, newPath); - instance.forceUpdate(); + switch (fiber.tag) { + case ClassComponent: + case IncompleteClassComponent: + renamePathInObject(instance.state, oldPath, newPath); + instance.forceUpdate(); + break; + } break; } } @@ -7964,6 +7976,7 @@ export function attach( case 'state': switch (fiber.tag) { case ClassComponent: + case IncompleteClassComponent: setInObject(instance.state, path, value); instance.forceUpdate(); break;