Remove disableMapsAsChildren flag (#18445)
Change warning to say the case is unsupported (not "will be deprecated")
Brian Vaughn committed
Mar 31, 2020 at 11:00 UTC
4de3a603256ab36fc58026ce2d75b4ad9e3556bc
12 files changed
+6
-30
packages/react-dom/src/__tests__/ReactMultiChild-test.js
+2
-3
@@ -295,9 +295,8 @@ describe('ReactMultiChild', () => {
295
}
296
const container = document.createElement('div');
297
expect(() => ReactDOM.render(<Parent />, container)).toErrorDev(
298
- 'Warning: Using Maps as children is unsupported and will likely yield ' +
299
- 'unexpected results. Convert it to a sequence/iterable of keyed ' +
300
- 'ReactElements instead.\n' +
298
+ 'Using Maps as children is not supported. ' +
299
+ 'Use an array of keyed ReactElements instead.\n' +
300
' in div (at **)\n' +
301
' in Parent (at **)',
302
);
packages/react-reconciler/src/ReactChildFiber.js
+2
-3
@@ -998,9 +998,8 @@ function ChildReconciler(shouldTrackSideEffects) {
998
if ((newChildrenIterable: any).entries === iteratorFn) {
999
if (!didWarnAboutMaps) {
1000
console.error(
1001
- 'Using Maps as children is unsupported and will likely yield ' +
1002
- 'unexpected results. Convert it to a sequence/iterable of keyed ' +
1003
- 'ReactElements instead.',
1001
+ 'Using Maps as children is not supported. ' +
1002
+ 'Use an array of keyed ReactElements instead.',
1003
);
1004
}
1005
didWarnAboutMaps = true;
packages/react/src/ReactChildren.js
+2
-12
@@ -15,7 +15,6 @@ import {
15
REACT_ELEMENT_TYPE,
16
REACT_PORTAL_TYPE,
17
} from 'shared/ReactSymbols';
18
-import {disableMapsAsChildren} from 'shared/ReactFeatureFlags';
18
19
import {isValidElement, cloneAndReplaceKey} from './ReactElement';
20
import ReactDebugCurrentFrame from './ReactDebugCurrentFrame';
@@ -162,23 +161,14 @@ function mapIntoArray(
161
const iterableChildren: Iterable<React$Node> & {
162
entries: any,
163
} = (children: any);
165
- if (disableMapsAsChildren) {
166
- invariant(
167
- iteratorFn !== iterableChildren.entries,
168
- 'Maps are not valid as a React child (found: %s). Consider converting ' +
169
- 'children to an array of keyed ReactElements instead.',
170
- iterableChildren,
171
- );
172
- }
164
165
if (__DEV__) {
166
// Warn about using Maps as children
167
if (iteratorFn === iterableChildren.entries) {
168
if (!didWarnAboutMaps) {
169
console.warn(
179
- 'Using Maps as children is deprecated and will be removed in ' +
180
- 'a future major release. Consider converting children to ' +
181
- 'an array of keyed ReactElements instead.',
170
+ 'Using Maps as children is not supported. ' +
171
+ 'Use an array of keyed ReactElements instead.',
172
);
173
}
174
didWarnAboutMaps = true;
packages/shared/ReactFeatureFlags.js
-3
@@ -121,9 +121,6 @@ export const disableLegacyContext = false;
121
// Disables children for <textarea> elements
122
export const disableTextareaChildren = false;
123
124
-// Disables Maps as ReactElement children
125
-export const disableMapsAsChildren = false;
126
-
124
export const disableModulePatternComponents = false;
125
126
// We should remove this flag once the above flag becomes enabled
packages/shared/forks/ReactFeatureFlags.native-fb.js
-1
@@ -37,7 +37,6 @@ export const disableLegacyContext = false;
37
export const disableSchedulerTimeoutBasedOnReactExpirationTime = false;
38
export const enableTrustedTypesIntegration = false;
39
export const disableTextareaChildren = false;
40
-export const disableMapsAsChildren = false;
40
export const disableModulePatternComponents = false;
41
export const warnUnstableRenderSubtreeIntoContainer = false;
42
export const deferPassiveEffectCleanupDuringUnmount = false;
packages/shared/forks/ReactFeatureFlags.native-oss.js
-1
@@ -36,7 +36,6 @@ export const disableLegacyContext = false;
36
export const disableSchedulerTimeoutBasedOnReactExpirationTime = false;
37
export const enableTrustedTypesIntegration = false;
38
export const disableTextareaChildren = false;
39
-export const disableMapsAsChildren = false;
39
export const disableModulePatternComponents = false;
40
export const warnUnstableRenderSubtreeIntoContainer = false;
41
export const deferPassiveEffectCleanupDuringUnmount = false;
packages/shared/forks/ReactFeatureFlags.test-renderer.js
-1
@@ -36,7 +36,6 @@ export const disableLegacyContext = false;
36
export const disableSchedulerTimeoutBasedOnReactExpirationTime = false;
37
export const enableTrustedTypesIntegration = false;
38
export const disableTextareaChildren = false;
39
-export const disableMapsAsChildren = false;
39
export const disableModulePatternComponents = false;
40
export const warnUnstableRenderSubtreeIntoContainer = false;
41
export const deferPassiveEffectCleanupDuringUnmount = false;
packages/shared/forks/ReactFeatureFlags.test-renderer.www.js
-1
@@ -36,7 +36,6 @@ export const disableLegacyContext = false;
36
export const disableSchedulerTimeoutBasedOnReactExpirationTime = false;
37
export const enableTrustedTypesIntegration = false;
38
export const disableTextareaChildren = false;
39
-export const disableMapsAsChildren = false;
39
export const disableModulePatternComponents = false;
40
export const warnUnstableRenderSubtreeIntoContainer = false;
41
export const deferPassiveEffectCleanupDuringUnmount = true;
packages/shared/forks/ReactFeatureFlags.testing.js
-1
@@ -36,7 +36,6 @@ export const disableLegacyContext = false;
36
export const disableSchedulerTimeoutBasedOnReactExpirationTime = false;
37
export const enableTrustedTypesIntegration = false;
38
export const disableTextareaChildren = false;
39
-export const disableMapsAsChildren = false;
39
export const disableModulePatternComponents = false;
40
export const warnUnstableRenderSubtreeIntoContainer = false;
41
export const deferPassiveEffectCleanupDuringUnmount = false;
packages/shared/forks/ReactFeatureFlags.testing.www.js
-1
@@ -36,7 +36,6 @@ export const disableLegacyContext = __EXPERIMENTAL__;
36
export const disableSchedulerTimeoutBasedOnReactExpirationTime = false;
37
export const enableTrustedTypesIntegration = false;
38
export const disableTextareaChildren = __EXPERIMENTAL__;
39
-export const disableMapsAsChildren = __EXPERIMENTAL__;
39
export const disableModulePatternComponents = false;
40
export const warnUnstableRenderSubtreeIntoContainer = false;
41
export const deferPassiveEffectCleanupDuringUnmount = true;
packages/shared/forks/ReactFeatureFlags.www.js
-2
@@ -65,8 +65,6 @@ export const flushSuspenseFallbacksInTests = true;
65
66
export const disableTextareaChildren = __EXPERIMENTAL__;
67
68
-export const disableMapsAsChildren = __EXPERIMENTAL__;
69
-
68
export const disableModulePatternComponents = __EXPERIMENTAL__;
69
70
export const warnUnstableRenderSubtreeIntoContainer = false;
scripts/error-codes/codes.json
-1
@@ -345,7 +345,6 @@
345
"344": "Expected prepareToHydrateHostSuspenseInstance() to never be called. This error is likely caused by a bug in React. Please file an issue.",
346
"345": "Root did not complete. This is a bug in React.",
347
"346": "An event responder context was used outside of an event cycle.",
348
- "347": "Maps are not valid as a React child (found: %s). Consider converting children to an array of keyed ReactElements instead.",
348
"348": "ensureListeningTo(): received a container that was not an element node. This is likely a bug in React.",
349
"349": "Expected a work-in-progress root. This is a bug in React. Please file an issue.",
350
"350": "Cannot read from mutable source during the current render without tearing. This is a bug in React. Please file an issue.",