Skip to content

Commit 2186beb

Browse files
gaearonacdlite
authored andcommitted
Remove unnecessary warnings (facebook#18135)
1 parent 82cf50a commit 2186beb

File tree

9 files changed

+31
-195
lines changed

9 files changed

+31
-195
lines changed

packages/react-dom/src/__tests__/ReactCompositeComponent-test.js

Lines changed: 0 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -493,43 +493,6 @@ describe('ReactCompositeComponent', () => {
493493
ReactDOM.render(<Component prop={123} />, container);
494494
});
495495

496-
it('should warn about `setState` in getChildContext', () => {
497-
const container = document.createElement('div');
498-
499-
let renderPasses = 0;
500-
501-
class Component extends React.Component {
502-
state = {value: 0};
503-
504-
getChildContext() {
505-
if (this.state.value === 0) {
506-
this.setState({value: 1});
507-
}
508-
}
509-
510-
render() {
511-
renderPasses++;
512-
return <div />;
513-
}
514-
}
515-
Component.childContextTypes = {};
516-
517-
let instance;
518-
519-
expect(() => {
520-
instance = ReactDOM.render(<Component />, container);
521-
}).toErrorDev(
522-
'Warning: setState(...): Cannot call setState() inside getChildContext()',
523-
);
524-
525-
expect(renderPasses).toBe(2);
526-
expect(instance.state.value).toBe(1);
527-
528-
// Test deduplication; (no additional warnings are expected).
529-
ReactDOM.unmountComponentAtNode(container);
530-
ReactDOM.render(<Component />, container);
531-
});
532-
533496
it('should cleanup even if render() fatals', () => {
534497
class BadComponent extends React.Component {
535498
render() {

packages/react-dom/src/__tests__/ReactDOMComponent-test.js

Lines changed: 0 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1242,53 +1242,6 @@ describe('ReactDOMComponent', () => {
12421242
);
12431243
});
12441244

1245-
it('should emit a warning once for a named custom component using shady DOM', () => {
1246-
const defaultCreateElement = document.createElement.bind(document);
1247-
1248-
try {
1249-
document.createElement = element => {
1250-
const container = defaultCreateElement(element);
1251-
container.shadyRoot = {};
1252-
return container;
1253-
};
1254-
class ShadyComponent extends React.Component {
1255-
render() {
1256-
return <polymer-component />;
1257-
}
1258-
}
1259-
const node = document.createElement('div');
1260-
expect(() => ReactDOM.render(<ShadyComponent />, node)).toErrorDev(
1261-
'ShadyComponent is using shady DOM. Using shady DOM with React can ' +
1262-
'cause things to break subtly.',
1263-
);
1264-
mountComponent({is: 'custom-shady-div2'});
1265-
} finally {
1266-
document.createElement = defaultCreateElement;
1267-
}
1268-
});
1269-
1270-
it('should emit a warning once for an unnamed custom component using shady DOM', () => {
1271-
const defaultCreateElement = document.createElement.bind(document);
1272-
1273-
try {
1274-
document.createElement = element => {
1275-
const container = defaultCreateElement(element);
1276-
container.shadyRoot = {};
1277-
return container;
1278-
};
1279-
1280-
expect(() => mountComponent({is: 'custom-shady-div'})).toErrorDev(
1281-
'A component is using shady DOM. Using shady DOM with React can ' +
1282-
'cause things to break subtly.',
1283-
);
1284-
1285-
// No additional warnings are expected
1286-
mountComponent({is: 'custom-shady-div2'});
1287-
} finally {
1288-
document.createElement = defaultCreateElement;
1289-
}
1290-
});
1291-
12921245
it('should treat menuitem as a void element but still create the closing tag', () => {
12931246
// menuitem is not implemented in jsdom, so this triggers the unknown warning error
12941247
const container = document.createElement('div');

packages/react-dom/src/client/ReactDOMComponent.js

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@
77
* @flow
88
*/
99

10-
// TODO: direct imports like some-package/src/* are bad. Fix me.
11-
import {getCurrentFiberOwnerNameInDevOrNull} from 'react-reconciler/src/ReactCurrentFiber';
1210
import {registrationNameModules} from 'legacy-events/EventPluginRegistry';
1311
import {canUseDOM} from 'shared/ExecutionEnvironment';
1412
import endsWith from 'shared/endsWith';
@@ -90,7 +88,6 @@ import {
9088
import {legacyListenToEvent} from '../events/DOMLegacyEventPluginSystem';
9189

9290
let didWarnInvalidHydration = false;
93-
let didWarnShadyDOM = false;
9491
let didWarnScriptTags = false;
9592

9693
const DANGEROUSLY_SET_INNER_HTML = 'dangerouslySetInnerHTML';
@@ -509,18 +506,6 @@ export function setInitialProperties(
509506
const isCustomComponentTag = isCustomComponent(tag, rawProps);
510507
if (__DEV__) {
511508
validatePropertiesInDevelopment(tag, rawProps);
512-
if (
513-
isCustomComponentTag &&
514-
!didWarnShadyDOM &&
515-
(domElement: any).shadyRoot
516-
) {
517-
console.error(
518-
'%s is using shady DOM. Using shady DOM with React can ' +
519-
'cause things to break subtly.',
520-
getCurrentFiberOwnerNameInDevOrNull() || 'A component',
521-
);
522-
didWarnShadyDOM = true;
523-
}
524509
}
525510

526511
// TODO: Make sure that we check isMounted before firing any of these events.
@@ -906,18 +891,6 @@ export function diffHydratedProperties(
906891
suppressHydrationWarning = rawProps[SUPPRESS_HYDRATION_WARNING] === true;
907892
isCustomComponentTag = isCustomComponent(tag, rawProps);
908893
validatePropertiesInDevelopment(tag, rawProps);
909-
if (
910-
isCustomComponentTag &&
911-
!didWarnShadyDOM &&
912-
(domElement: any).shadyRoot
913-
) {
914-
console.error(
915-
'%s is using shady DOM. Using shady DOM with React can ' +
916-
'cause things to break subtly.',
917-
getCurrentFiberOwnerNameInDevOrNull() || 'A component',
918-
);
919-
didWarnShadyDOM = true;
920-
}
921894
}
922895

923896
// TODO: Make sure that we check isMounted before firing any of these events.

packages/react-reconciler/src/ReactCurrentFiber.js

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,6 @@ import getComponentName from 'shared/getComponentName';
2323

2424
const ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;
2525

26-
type LifeCyclePhase = 'render' | 'getChildContext';
27-
2826
function describeFiber(fiber: Fiber): string {
2927
switch (fiber.tag) {
3028
case HostRoot:
@@ -57,7 +55,7 @@ export function getStackByFiberInDevAndProd(workInProgress: Fiber): string {
5755
}
5856

5957
export let current: Fiber | null = null;
60-
export let phase: LifeCyclePhase | null = null;
58+
export let isRendering: boolean = false;
6159

6260
export function getCurrentFiberOwnerNameInDevOrNull(): string | null {
6361
if (__DEV__) {
@@ -88,20 +86,20 @@ export function resetCurrentFiber() {
8886
if (__DEV__) {
8987
ReactDebugCurrentFrame.getCurrentStack = null;
9088
current = null;
91-
phase = null;
89+
isRendering = false;
9290
}
9391
}
9492

9593
export function setCurrentFiber(fiber: Fiber) {
9694
if (__DEV__) {
9795
ReactDebugCurrentFrame.getCurrentStack = getCurrentFiberStackInDev;
9896
current = fiber;
99-
phase = null;
97+
isRendering = false;
10098
}
10199
}
102100

103-
export function setCurrentPhase(lifeCyclePhase: LifeCyclePhase | null) {
101+
export function setIsRendering(rendering: boolean) {
104102
if (__DEV__) {
105-
phase = lifeCyclePhase;
103+
isRendering = rendering;
106104
}
107105
}

packages/react-reconciler/src/ReactFiberBeginWork.js

Lines changed: 11 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -74,9 +74,9 @@ import ReactStrictModeWarnings from './ReactStrictModeWarnings';
7474
import {refineResolvedLazyComponent} from 'shared/ReactLazyComponent';
7575
import {REACT_LAZY_TYPE, getIteratorFn} from 'shared/ReactSymbols';
7676
import {
77-
setCurrentPhase,
7877
getCurrentFiberOwnerNameInDevOrNull,
7978
getCurrentFiberStackInDev,
79+
setIsRendering,
8080
} from './ReactCurrentFiber';
8181
import {startWorkTimer, cancelWorkTimer} from './ReactDebugFiberPerf';
8282
import {
@@ -193,7 +193,6 @@ let didWarnAboutContextTypeOnFunctionComponent;
193193
let didWarnAboutGetDerivedStateOnFunctionComponent;
194194
let didWarnAboutFunctionRefs;
195195
export let didWarnAboutReassigningProps;
196-
let didWarnAboutMaxDuration;
197196
let didWarnAboutRevealOrder;
198197
let didWarnAboutTailOptions;
199198
let didWarnAboutDefaultPropsOnFunctionComponent;
@@ -205,7 +204,6 @@ if (__DEV__) {
205204
didWarnAboutGetDerivedStateOnFunctionComponent = {};
206205
didWarnAboutFunctionRefs = {};
207206
didWarnAboutReassigningProps = false;
208-
didWarnAboutMaxDuration = false;
209207
didWarnAboutRevealOrder = {};
210208
didWarnAboutTailOptions = {};
211209
didWarnAboutDefaultPropsOnFunctionComponent = {};
@@ -312,7 +310,7 @@ function updateForwardRef(
312310
prepareToReadContext(workInProgress, renderExpirationTime);
313311
if (__DEV__) {
314312
ReactCurrentOwner.current = workInProgress;
315-
setCurrentPhase('render');
313+
setIsRendering(true);
316314
nextChildren = renderWithHooks(
317315
current,
318316
workInProgress,
@@ -337,7 +335,7 @@ function updateForwardRef(
337335
);
338336
}
339337
}
340-
setCurrentPhase(null);
338+
setIsRendering(false);
341339
} else {
342340
nextChildren = renderWithHooks(
343341
current,
@@ -644,7 +642,7 @@ function updateFunctionComponent(
644642
prepareToReadContext(workInProgress, renderExpirationTime);
645643
if (__DEV__) {
646644
ReactCurrentOwner.current = workInProgress;
647-
setCurrentPhase('render');
645+
setIsRendering(true);
648646
nextChildren = renderWithHooks(
649647
current,
650648
workInProgress,
@@ -669,7 +667,7 @@ function updateFunctionComponent(
669667
);
670668
}
671669
}
672-
setCurrentPhase(null);
670+
setIsRendering(false);
673671
} else {
674672
nextChildren = renderWithHooks(
675673
current,
@@ -720,7 +718,7 @@ function updateBlock(
720718
prepareToReadContext(workInProgress, renderExpirationTime);
721719
if (__DEV__) {
722720
ReactCurrentOwner.current = workInProgress;
723-
setCurrentPhase('render');
721+
setIsRendering(true);
724722
nextChildren = renderWithHooks(
725723
current,
726724
workInProgress,
@@ -745,7 +743,7 @@ function updateBlock(
745743
);
746744
}
747745
}
748-
setCurrentPhase(null);
746+
setIsRendering(false);
749747
} else {
750748
nextChildren = renderWithHooks(
751749
current,
@@ -923,15 +921,15 @@ function finishClassComponent(
923921
}
924922
} else {
925923
if (__DEV__) {
926-
setCurrentPhase('render');
924+
setIsRendering(true);
927925
nextChildren = instance.render();
928926
if (
929927
debugRenderPhaseSideEffectsForStrictMode &&
930928
workInProgress.mode & StrictMode
931929
) {
932930
instance.render();
933931
}
934-
setCurrentPhase(null);
932+
setIsRendering(false);
935933
} else {
936934
nextChildren = instance.render();
937935
}
@@ -1637,18 +1635,6 @@ function updateSuspenseComponent(
16371635

16381636
pushSuspenseContext(workInProgress, suspenseContext);
16391637

1640-
if (__DEV__) {
1641-
if ('maxDuration' in nextProps) {
1642-
if (!didWarnAboutMaxDuration) {
1643-
didWarnAboutMaxDuration = true;
1644-
console.error(
1645-
'maxDuration has been removed from React. ' +
1646-
'Remove the maxDuration prop.',
1647-
);
1648-
}
1649-
}
1650-
}
1651-
16521638
// This next part is a bit confusing. If the children timeout, we switch to
16531639
// showing the fallback children in place of the "primary" children.
16541640
// However, we don't want to delete the primary children because then their
@@ -2732,9 +2718,9 @@ function updateContextConsumer(
27322718
let newChildren;
27332719
if (__DEV__) {
27342720
ReactCurrentOwner.current = workInProgress;
2735-
setCurrentPhase('render');
2721+
setIsRendering(true);
27362722
newChildren = render(newValue);
2737-
setCurrentPhase(null);
2723+
setIsRendering(false);
27382724
} else {
27392725
newChildren = render(newValue);
27402726
}

packages/react-reconciler/src/ReactFiberContext.js

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import getComponentName from 'shared/getComponentName';
1717
import invariant from 'shared/invariant';
1818
import checkPropTypes from 'prop-types/checkPropTypes';
1919

20-
import {setCurrentPhase, getCurrentFiberStackInDev} from './ReactCurrentFiber';
20+
import {getCurrentFiberStackInDev} from './ReactCurrentFiber';
2121
import {startPhaseTimer, stopPhaseTimer} from './ReactDebugFiberPerf';
2222
import {createCursor, push, pop} from './ReactFiberStack';
2323

@@ -210,15 +210,9 @@ function processChildContext(
210210
}
211211

212212
let childContext;
213-
if (__DEV__) {
214-
setCurrentPhase('getChildContext');
215-
}
216213
startPhaseTimer(fiber, 'getChildContext');
217214
childContext = instance.getChildContext();
218215
stopPhaseTimer();
219-
if (__DEV__) {
220-
setCurrentPhase(null);
221-
}
222216
for (let contextKey in childContext) {
223217
invariant(
224218
contextKey in childContextTypes,

packages/react-reconciler/src/ReactFiberReconciler.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ import {
7070
import {createUpdate, enqueueUpdate} from './ReactUpdateQueue';
7171
import {
7272
getStackByFiberInDevAndProd,
73-
phase as ReactCurrentFiberPhase,
73+
isRendering as ReactCurrentFiberIsRendering,
7474
current as ReactCurrentFiberCurrent,
7575
} from './ReactCurrentFiber';
7676
import {StrictMode} from './ReactTypeOfMode';
@@ -259,7 +259,7 @@ export function updateContainer(
259259

260260
if (__DEV__) {
261261
if (
262-
ReactCurrentFiberPhase === 'render' &&
262+
ReactCurrentFiberIsRendering &&
263263
ReactCurrentFiberCurrent !== null &&
264264
!didWarnAboutNestedUpdates
265265
) {

0 commit comments

Comments
 (0)