Add noop useDebugValue hook to partial/server renderer (#14597)
Brian Vaughn committed
Jan 15, 2019 at 11:00 UTC
153a0b5980ff8c150cb5ec2ff1c9c73959d6d810
2 files changed
+16
packages/react-dom/src/__tests__/ReactDOMServerIntegrationHooks-test.internal.js
+14
@@ -26,6 +26,7 @@ let useMemo;
26
let useRef;
27
let useImperativeHandle;
28
let useLayoutEffect;
29
+let useDebugValue;
30
let forwardRef;
31
let yieldedValues;
32
let yieldValue;
@@ -48,6 +49,7 @@ function initModules() {
49
useCallback = React.useCallback;
50
useMemo = React.useMemo;
51
useRef = React.useRef;
52
+ useDebugValue = React.useDebugValue;
53
useImperativeHandle = React.useImperativeHandle;
54
useLayoutEffect = React.useLayoutEffect;
55
forwardRef = React.forwardRef;
@@ -658,4 +660,16 @@ describe('ReactDOMServerHooks', () => {
660
'Hooks can only be called inside the body of a function component.',
661
);
662
});
663
+
664
+ describe('useDebugValue', () => {
665
+ itRenders('is a noop', async render => {
666
+ function Counter(props) {
667
+ const debugValue = useDebugValue(123);
668
+ return <Text text={typeof debugValue} />;
669
+ }
670
+
671
+ const domNode = await render(<Counter />);
672
+ expect(domNode.textContent).toEqual('undefined');
673
+ });
674
+ });
675
});
packages/react-dom/src/server/ReactPartialRendererHooks.js
+2
@@ -351,6 +351,8 @@ export const Dispatcher = {
351
useImperativeHandle: noop,
352
// Effects are not run in the server environment.
353
useEffect: noop,
354
+ // Debugging effect
355
+ useDebugValue: noop,
356
};
357
export const DispatcherWithoutHooks = {
358
readContext,