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':