diff --git a/packages/react-dom-bindings/src/client/ReactFiberConfigDOM.js b/packages/react-dom-bindings/src/client/ReactFiberConfigDOM.js index 5c6408c7c822c..0af4d7bb70e3f 100644 --- a/packages/react-dom-bindings/src/client/ReactFiberConfigDOM.js +++ b/packages/react-dom-bindings/src/client/ReactFiberConfigDOM.js @@ -1659,16 +1659,17 @@ function recursivelyGetFragmentInstanceChildren( return; } + if (child.tag === HostComponent) { + childElements.add(child.stateNode); + } + if (child.sibling !== null) { recursivelyGetFragmentInstanceChildren(child.sibling, childElements); } - if (child.tag === HostComponent) { - childElements.add(child.stateNode); - return; + if (child.tag !== HostComponent) { + recursivelyGetFragmentInstanceChildren(child.child, childElements); } - - recursivelyGetFragmentInstanceChildren(child.child, childElements); } function normalizeListenerOptions( diff --git a/packages/react-dom/src/__tests__/ReactDOMFragmentRefs-test.js b/packages/react-dom/src/__tests__/ReactDOMFragmentRefs-test.js index 1550dd2d3d1cd..2c740203c1d83 100644 --- a/packages/react-dom/src/__tests__/ReactDOMFragmentRefs-test.js +++ b/packages/react-dom/src/__tests__/ReactDOMFragmentRefs-test.js @@ -96,13 +96,13 @@ describe('FragmentRefs', () => { const parentRef = React.createRef(); const fragmentRef = React.createRef(); const root = ReactDOMClient.createRoot(container); - let focusedElement = null; function Test() { return (