diff --git a/packages/react-devtools-shared/src/__tests__/editing-test.js b/packages/react-devtools-shared/src/__tests__/editing-test.js index 750e13e38d5d..532b538429e4 100644 --- a/packages/react-devtools-shared/src/__tests__/editing-test.js +++ b/packages/react-devtools-shared/src/__tests__/editing-test.js @@ -82,7 +82,12 @@ describe('editing interface', () => { shallow="initial" /> , - + , ), ); @@ -259,6 +264,14 @@ describe('editing interface', () => { }, after: 'initial', }); + renamePath(hostComponentID, ['data-foo'], ['data-bar']); + expect({ + foo: inputRef.current.dataset.foo, + bar: inputRef.current.dataset.bar, + }).toEqual({ + foo: undefined, + bar: 'test', + }); }); // @reactVersion >= 16.9 diff --git a/packages/react-devtools-shared/src/backend/fiber/renderer.js b/packages/react-devtools-shared/src/backend/fiber/renderer.js index 61c6f86dd6b4..5a977dc762bb 100644 --- a/packages/react-devtools-shared/src/backend/fiber/renderer.js +++ b/packages/react-devtools-shared/src/backend/fiber/renderer.js @@ -7874,17 +7874,20 @@ export function attach( } break; case 'props': - if (instance === null) { - if (typeof overridePropsRenamePath === 'function') { - overridePropsRenamePath(fiber, oldPath, newPath); - } - } else { - fiber.pendingProps = copyWithRename( - instance.props, - oldPath, - newPath, - ); - instance.forceUpdate(); + switch (fiber.tag) { + case ClassComponent: + fiber.pendingProps = copyWithRename( + instance.props, + oldPath, + newPath, + ); + instance.forceUpdate(); + break; + default: + if (typeof overridePropsRenamePath === 'function') { + overridePropsRenamePath(fiber, oldPath, newPath); + } + break; } break; case 'state':