From ce24114a01c97d1bc36eedab9ba2b519cf4d6878 Mon Sep 17 00:00:00 2001 From: Dan Abramov Date: Sat, 13 Aug 2016 19:36:21 +0100 Subject: [PATCH] Fix ReactComponentTreeHook.getRegisteredIDs() to work with inlined content (#7490) I broke this in #7463: parseInt() cuts off #text at the end. Changing to just use negative numbers instead. (cherry picked from commit a73886456e0cd07d2c9c93459d3f7625876ff7c9) --- src/renderers/dom/shared/ReactDOMComponent.js | 3 ++- .../hooks/__tests__/ReactComponentTreeHook-test.js | 10 ++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/renderers/dom/shared/ReactDOMComponent.js b/src/renderers/dom/shared/ReactDOMComponent.js index 84c59061da007..07a57b096bda1 100644 --- a/src/renderers/dom/shared/ReactDOMComponent.js +++ b/src/renderers/dom/shared/ReactDOMComponent.js @@ -258,7 +258,8 @@ if (__DEV__) { setContentChildForInstrumentation = function(content) { var hasExistingContent = this._contentDebugID != null; var debugID = this._debugID; - var contentDebugID = debugID + '#text'; + // This ID represents the inlined child that has no backing instance: + var contentDebugID = -debugID; if (content == null) { if (hasExistingContent) { diff --git a/src/renderers/shared/hooks/__tests__/ReactComponentTreeHook-test.js b/src/renderers/shared/hooks/__tests__/ReactComponentTreeHook-test.js index 28f3d931a14dd..e2d1ba77e67c8 100644 --- a/src/renderers/shared/hooks/__tests__/ReactComponentTreeHook-test.js +++ b/src/renderers/shared/hooks/__tests__/ReactComponentTreeHook-test.js @@ -1721,6 +1721,16 @@ describe('ReactComponentTreeHook', () => { expect(ReactComponentTreeTestUtils.getRegisteredDisplayNames()).toEqual([]); }); + it('registers inlined text nodes', () => { + var node = document.createElement('div'); + + ReactDOM.render(
hi
, node); + expect(ReactComponentTreeTestUtils.getRegisteredDisplayNames()).toEqual(['div', '#text']); + + ReactDOM.unmountComponentAtNode(node); + expect(ReactComponentTreeTestUtils.getRegisteredDisplayNames()).toEqual([]); + }); + describe('stack addenda', () => { it('gets created', () => { function getAddendum(element) {