diff --git a/packages/react-dom/src/__tests__/ReactDOMServerSelectiveHydration-test.internal.js b/packages/react-dom/src/__tests__/ReactDOMServerSelectiveHydration-test.internal.js
index 275c3e8fdefd7..6b51c9a189088 100644
--- a/packages/react-dom/src/__tests__/ReactDOMServerSelectiveHydration-test.internal.js
+++ b/packages/react-dom/src/__tests__/ReactDOMServerSelectiveHydration-test.internal.js
@@ -1607,13 +1607,7 @@ describe('ReactDOMServerSelectiveHydration', () => {
);
}
- let finalHTML;
- expect(() => {
- finalHTML = ReactDOMServer.renderToString();
- }).toErrorDev([
- 'useLayoutEffect does nothing on the server',
- 'useLayoutEffect does nothing on the server',
- ]);
+ const finalHTML = ReactDOMServer.renderToString();
assertLog(['App', 'A', 'B']);
diff --git a/packages/react-server/src/ReactFizzHooks.js b/packages/react-server/src/ReactFizzHooks.js
index bf236793bcee1..be4b32e8f797b 100644
--- a/packages/react-server/src/ReactFizzHooks.js
+++ b/packages/react-server/src/ReactFizzHooks.js
@@ -440,23 +440,6 @@ function useRef(initialValue: T): {current: T} {
}
}
-export function useLayoutEffect(
- create: () => (() => void) | void,
- inputs: Array | void | null,
-) {
- if (__DEV__) {
- currentHookNameInDev = 'useLayoutEffect';
- console.error(
- 'useLayoutEffect does nothing on the server, because its effect cannot ' +
- "be encoded into the server renderer's output format. This will lead " +
- 'to a mismatch between the initial, non-hydrated UI and the intended ' +
- 'UI. To avoid this, useLayoutEffect should only be used in ' +
- 'components that render exclusively on the client. ' +
- 'See https://reactjs.org/link/uselayouteffect-ssr for common fixes.',
- );
- }
-}
-
function dispatchAction(
componentIdentity: Object,
queue: UpdateQueue,
@@ -633,7 +616,7 @@ export const HooksDispatcher: Dispatcher = {
useRef,
useState,
useInsertionEffect: noop,
- useLayoutEffect,
+ useLayoutEffect: noop,
useCallback,
// useImperativeHandle is not run in the server environment
useImperativeHandle: noop,