From 153a0b5980ff8c150cb5ec2ff1c9c73959d6d810 Mon Sep 17 00:00:00 2001 From: Brian Vaughn Date: Tue, 15 Jan 2019 11:00:03 -0800 Subject: [PATCH] Add noop useDebugValue hook to partial/server renderer (#14597) --- ...ReactDOMServerIntegrationHooks-test.internal.js | 14 ++++++++++++++ .../src/server/ReactPartialRendererHooks.js | 2 ++ 2 files changed, 16 insertions(+) diff --git a/packages/react-dom/src/__tests__/ReactDOMServerIntegrationHooks-test.internal.js b/packages/react-dom/src/__tests__/ReactDOMServerIntegrationHooks-test.internal.js index 2e585a1373a22..7cd436c4ed2f6 100644 --- a/packages/react-dom/src/__tests__/ReactDOMServerIntegrationHooks-test.internal.js +++ b/packages/react-dom/src/__tests__/ReactDOMServerIntegrationHooks-test.internal.js @@ -26,6 +26,7 @@ let useMemo; let useRef; let useImperativeHandle; let useLayoutEffect; +let useDebugValue; let forwardRef; let yieldedValues; let yieldValue; @@ -48,6 +49,7 @@ function initModules() { useCallback = React.useCallback; useMemo = React.useMemo; useRef = React.useRef; + useDebugValue = React.useDebugValue; useImperativeHandle = React.useImperativeHandle; useLayoutEffect = React.useLayoutEffect; forwardRef = React.forwardRef; @@ -658,4 +660,16 @@ describe('ReactDOMServerHooks', () => { 'Hooks can only be called inside the body of a function component.', ); }); + + describe('useDebugValue', () => { + itRenders('is a noop', async render => { + function Counter(props) { + const debugValue = useDebugValue(123); + return ; + } + + const domNode = await render(); + expect(domNode.textContent).toEqual('undefined'); + }); + }); }); diff --git a/packages/react-dom/src/server/ReactPartialRendererHooks.js b/packages/react-dom/src/server/ReactPartialRendererHooks.js index d5ca03dee81aa..6eb62c7bd7c2d 100644 --- a/packages/react-dom/src/server/ReactPartialRendererHooks.js +++ b/packages/react-dom/src/server/ReactPartialRendererHooks.js @@ -351,6 +351,8 @@ export const Dispatcher = { useImperativeHandle: noop, // Effects are not run in the server environment. useEffect: noop, + // Debugging effect + useDebugValue: noop, }; export const DispatcherWithoutHooks = { readContext,