@@ -117,7 +117,6 @@ import {
117
117
enableCPUSuspense ,
118
118
enablePostpone ,
119
119
disableLegacyMode ,
120
- disableDefaultPropsExceptForClasses ,
121
120
enableHydrationLaneScheduling ,
122
121
enableViewTransition ,
123
122
enableFragmentRefs ,
@@ -258,7 +257,6 @@ import {
258
257
updateClassInstance ,
259
258
resolveClassComponentProps ,
260
259
} from './ReactFiberClassComponent' ;
261
- import { resolveDefaultPropsOnNonClassComponent } from './ReactFiberLazyComponent' ;
262
260
import {
263
261
createFiberFromTypeAndProps ,
264
262
createFiberFromFragment ,
@@ -327,7 +325,6 @@ let didWarnAboutGetDerivedStateOnFunctionComponent;
327
325
export let didWarnAboutReassigningProps : boolean ;
328
326
let didWarnAboutRevealOrder ;
329
327
let didWarnAboutTailOptions ;
330
- let didWarnAboutDefaultPropsOnFunctionComponent ;
331
328
let didWarnAboutClassNameOnViewTransition ;
332
329
333
330
if ( __DEV__ ) {
@@ -338,7 +335,6 @@ if (__DEV__) {
338
335
didWarnAboutReassigningProps = false ;
339
336
didWarnAboutRevealOrder = ( { } : { [ string ] : boolean } ) ;
340
337
didWarnAboutTailOptions = ( { } : { [ string ] : boolean } ) ;
341
- didWarnAboutDefaultPropsOnFunctionComponent = ( { } : { [ string ] : boolean } ) ;
342
338
didWarnAboutClassNameOnViewTransition = ( { } : { [ string ] : boolean } ) ;
343
339
}
344
340
@@ -482,13 +478,7 @@ function updateMemoComponent(
482
478
) : null | Fiber {
483
479
if ( current === null ) {
484
480
const type = Component . type ;
485
- if (
486
- isSimpleFunctionComponent ( type ) &&
487
- Component . compare === null &&
488
- // SimpleMemoComponent codepath doesn't resolve outer props either.
489
- ( disableDefaultPropsExceptForClasses ||
490
- Component . defaultProps === undefined )
491
- ) {
481
+ if ( isSimpleFunctionComponent ( type ) && Component . compare === null ) {
492
482
let resolvedType = type ;
493
483
if ( __DEV__ ) {
494
484
resolvedType = resolveFunctionForHotReloading ( type ) ;
@@ -509,21 +499,6 @@ function updateMemoComponent(
509
499
renderLanes ,
510
500
) ;
511
501
}
512
- if ( ! disableDefaultPropsExceptForClasses ) {
513
- if ( __DEV__ ) {
514
- if ( Component . defaultProps !== undefined ) {
515
- const componentName = getComponentNameFromType ( type ) || 'Unknown' ;
516
- if ( ! didWarnAboutDefaultPropsOnFunctionComponent [ componentName ] ) {
517
- console . error (
518
- '%s: Support for defaultProps will be removed from memo components ' +
519
- 'in a future major release. Use JavaScript default parameters instead.' ,
520
- componentName ,
521
- ) ;
522
- didWarnAboutDefaultPropsOnFunctionComponent [ componentName ] = true ;
523
- }
524
- }
525
- }
526
- }
527
502
const child = createFiberFromTypeAndProps (
528
503
Component . type ,
529
504
null ,
@@ -1495,7 +1470,6 @@ function updateFunctionComponent(
1495
1470
export function replayFunctionComponent (
1496
1471
current : Fiber | null ,
1497
1472
workInProgress : Fiber ,
1498
- nextProps : any ,
1499
1473
Component : any ,
1500
1474
secondArg : any ,
1501
1475
renderLanes : Lanes ,
@@ -1512,7 +1486,7 @@ export function replayFunctionComponent(
1512
1486
current ,
1513
1487
workInProgress ,
1514
1488
Component ,
1515
- nextProps ,
1489
+ workInProgress . pendingProps ,
1516
1490
secondArg ,
1517
1491
) ;
1518
1492
const hasId = checkDidRenderIdHook ( ) ;
@@ -2072,9 +2046,6 @@ function mountLazyComponent(
2072
2046
renderLanes,
2073
2047
);
2074
2048
} else {
2075
- const resolvedProps = disableDefaultPropsExceptForClasses
2076
- ? props
2077
- : resolveDefaultPropsOnNonClassComponent ( Component , props ) ;
2078
2049
workInProgress . tag = FunctionComponent ;
2079
2050
if ( __DEV__ ) {
2080
2051
validateFunctionComponentInDev ( workInProgress , Component ) ;
@@ -2085,16 +2056,13 @@ function mountLazyComponent(
2085
2056
null,
2086
2057
workInProgress,
2087
2058
Component,
2088
- resolvedProps ,
2059
+ props ,
2089
2060
renderLanes,
2090
2061
);
2091
2062
}
2092
2063
} else if ( Component !== undefined && Component !== null ) {
2093
2064
const $$typeof = Component . $$typeof ;
2094
2065
if ( $$typeof === REACT_FORWARD_REF_TYPE ) {
2095
- const resolvedProps = disableDefaultPropsExceptForClasses
2096
- ? props
2097
- : resolveDefaultPropsOnNonClassComponent ( Component , props ) ;
2098
2066
workInProgress . tag = ForwardRef ;
2099
2067
if ( __DEV__ ) {
2100
2068
workInProgress . type = Component =
@@ -2104,24 +2072,16 @@ function mountLazyComponent(
2104
2072
null,
2105
2073
workInProgress,
2106
2074
Component,
2107
- resolvedProps ,
2075
+ props ,
2108
2076
renderLanes,
2109
2077
);
2110
2078
} else if ( $$typeof === REACT_MEMO_TYPE ) {
2111
- const resolvedProps = disableDefaultPropsExceptForClasses
2112
- ? props
2113
- : resolveDefaultPropsOnNonClassComponent ( Component , props ) ;
2114
2079
workInProgress . tag = MemoComponent ;
2115
2080
return updateMemoComponent (
2116
2081
null ,
2117
2082
workInProgress ,
2118
2083
Component ,
2119
- disableDefaultPropsExceptForClasses
2120
- ? resolvedProps
2121
- : resolveDefaultPropsOnNonClassComponent (
2122
- Component . type ,
2123
- resolvedProps ,
2124
- ) , // The inner type can have defaults too
2084
+ props ,
2125
2085
renderLanes ,
2126
2086
) ;
2127
2087
}
@@ -2198,22 +2158,6 @@ function validateFunctionComponentInDev(workInProgress: Fiber, Component: any) {
2198
2158
) ;
2199
2159
}
2200
2160
2201
- if (
2202
- ! disableDefaultPropsExceptForClasses &&
2203
- Component . defaultProps !== undefined
2204
- ) {
2205
- const componentName = getComponentNameFromType ( Component ) || 'Unknown' ;
2206
-
2207
- if ( ! didWarnAboutDefaultPropsOnFunctionComponent [ componentName ] ) {
2208
- console . error (
2209
- '%s: Support for defaultProps will be removed from function components ' +
2210
- 'in a future major release. Use JavaScript default parameters instead.' ,
2211
- componentName ,
2212
- ) ;
2213
- didWarnAboutDefaultPropsOnFunctionComponent [ componentName ] = true ;
2214
- }
2215
- }
2216
-
2217
2161
if ( typeof Component . getDerivedStateFromProps === 'function' ) {
2218
2162
const componentName = getComponentNameFromType ( Component ) || 'Unknown' ;
2219
2163
@@ -4176,11 +4120,7 @@ function beginWork(
4176
4120
case FunctionComponent : {
4177
4121
const Component = workInProgress . type ;
4178
4122
const unresolvedProps = workInProgress . pendingProps ;
4179
- const resolvedProps =
4180
- disableDefaultPropsExceptForClasses ||
4181
- workInProgress . elementType === Component
4182
- ? unresolvedProps
4183
- : resolveDefaultPropsOnNonClassComponent ( Component , unresolvedProps ) ;
4123
+ const resolvedProps = unresolvedProps ;
4184
4124
return updateFunctionComponent (
4185
4125
current ,
4186
4126
workInProgress ,
@@ -4226,18 +4166,11 @@ function beginWork(
4226
4166
case HostPortal :
4227
4167
return updatePortalComponent ( current , workInProgress , renderLanes ) ;
4228
4168
case ForwardRef : {
4229
- const type = workInProgress . type ;
4230
- const unresolvedProps = workInProgress . pendingProps ;
4231
- const resolvedProps =
4232
- disableDefaultPropsExceptForClasses ||
4233
- workInProgress . elementType === type
4234
- ? unresolvedProps
4235
- : resolveDefaultPropsOnNonClassComponent ( type , unresolvedProps ) ;
4236
4169
return updateForwardRef (
4237
4170
current ,
4238
4171
workInProgress ,
4239
- type ,
4240
- resolvedProps ,
4172
+ workInProgress . type ,
4173
+ workInProgress . pendingProps ,
4241
4174
renderLanes ,
4242
4175
) ;
4243
4176
}
@@ -4252,20 +4185,11 @@ function beginWork(
4252
4185
case ContextConsumer :
4253
4186
return updateContextConsumer ( current , workInProgress , renderLanes ) ;
4254
4187
case MemoComponent : {
4255
- const type = workInProgress . type ;
4256
- const unresolvedProps = workInProgress . pendingProps ;
4257
- // Resolve outer props first, then resolve inner props.
4258
- let resolvedProps = disableDefaultPropsExceptForClasses
4259
- ? unresolvedProps
4260
- : resolveDefaultPropsOnNonClassComponent ( type , unresolvedProps ) ;
4261
- resolvedProps = disableDefaultPropsExceptForClasses
4262
- ? resolvedProps
4263
- : resolveDefaultPropsOnNonClassComponent ( type . type , resolvedProps ) ;
4264
4188
return updateMemoComponent (
4265
4189
current ,
4266
4190
workInProgress ,
4267
- type ,
4268
- resolvedProps ,
4191
+ workInProgress . type ,
4192
+ workInProgress . pendingProps ,
4269
4193
renderLanes ,
4270
4194
) ;
4271
4195
}
0 commit comments