diff --git a/packages/react-dom-bindings/src/server/ReactFizzConfigDOM.js b/packages/react-dom-bindings/src/server/ReactFizzConfigDOM.js index a93c32a947f10..0fd38390628de 100644 --- a/packages/react-dom-bindings/src/server/ReactFizzConfigDOM.js +++ b/packages/react-dom-bindings/src/server/ReactFizzConfigDOM.js @@ -4518,7 +4518,7 @@ export function writeCompletedRoot( } if (enableFizzBlockingRender) { const preamble = renderState.preamble; - if (preamble.htmlChunks || preamble.headChunks) { + if (!isComplete && (preamble.htmlChunks || preamble.headChunks)) { // If we rendered the whole document, then we emitted a rel="expect" that needs a // matching target. Normally we use one of the bootstrap scripts for this but if // there are none, then we need to emit a tag to complete the shell. diff --git a/packages/react-dom/src/__tests__/ReactDOMFizzServer-test.js b/packages/react-dom/src/__tests__/ReactDOMFizzServer-test.js index b988bd72caff5..57f82ada51da8 100644 --- a/packages/react-dom/src/__tests__/ReactDOMFizzServer-test.js +++ b/packages/react-dom/src/__tests__/ReactDOMFizzServer-test.js @@ -3630,9 +3630,6 @@ describe('ReactDOMFizzServer', () => { '' + (gate(flags => flags.shouldUseFizzExternalRuntime) ? '' - : '') + - (gate(flags => flags.enableFizzBlockingRender) - ? '' : ''), ); }); @@ -4566,15 +4563,7 @@ describe('ReactDOMFizzServer', () => { // the html should be as-is expect(document.documentElement.innerHTML).toEqual( - '
' + - (gate(flags => flags.enableFizzBlockingRender) - ? '' - : '') + - 'hello world!
' + - (gate(flags => flags.enableFizzBlockingRender) - ? '' - : '') + - '', + 'hello world!
', ); }); @@ -6618,14 +6607,7 @@ describe('ReactDOMFizzServer', () => { (gate(flags => flags.shouldUseFizzExternalRuntime) ? '' : '') + - (gate(flags => flags.enableFizzBlockingRender) - ? '' - : '') + - '' + - (gate(flags => flags.enableFizzBlockingRender) - ? '' - : '') + - '