@@ -117,7 +117,6 @@ import {
117117 enableCPUSuspense ,
118118 enablePostpone ,
119119 disableLegacyMode ,
120- disableDefaultPropsExceptForClasses ,
121120 enableHydrationLaneScheduling ,
122121 enableViewTransition ,
123122 enableFragmentRefs ,
@@ -258,7 +257,6 @@ import {
258257 updateClassInstance ,
259258 resolveClassComponentProps ,
260259} from './ReactFiberClassComponent' ;
261- import { resolveDefaultPropsOnNonClassComponent } from './ReactFiberLazyComponent' ;
262260import {
263261 createFiberFromTypeAndProps ,
264262 createFiberFromFragment ,
@@ -327,7 +325,6 @@ let didWarnAboutGetDerivedStateOnFunctionComponent;
327325export let didWarnAboutReassigningProps : boolean ;
328326let didWarnAboutRevealOrder ;
329327let didWarnAboutTailOptions ;
330- let didWarnAboutDefaultPropsOnFunctionComponent ;
331328let didWarnAboutClassNameOnViewTransition ;
332329
333330if ( __DEV__ ) {
@@ -338,7 +335,6 @@ if (__DEV__) {
338335 didWarnAboutReassigningProps = false ;
339336 didWarnAboutRevealOrder = ( { } : { [ string ] : boolean } ) ;
340337 didWarnAboutTailOptions = ( { } : { [ string ] : boolean } ) ;
341- didWarnAboutDefaultPropsOnFunctionComponent = ( { } : { [ string ] : boolean } ) ;
342338 didWarnAboutClassNameOnViewTransition = ( { } : { [ string ] : boolean } ) ;
343339}
344340
@@ -482,13 +478,7 @@ function updateMemoComponent(
482478) : null | Fiber {
483479 if ( current === null ) {
484480 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 ) {
492482 let resolvedType = type ;
493483 if ( __DEV__ ) {
494484 resolvedType = resolveFunctionForHotReloading ( type ) ;
@@ -509,21 +499,6 @@ function updateMemoComponent(
509499 renderLanes ,
510500 ) ;
511501 }
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- }
527502 const child = createFiberFromTypeAndProps (
528503 Component . type ,
529504 null ,
@@ -2072,9 +2047,6 @@ function mountLazyComponent(
20722047 renderLanes,
20732048 );
20742049 } else {
2075- const resolvedProps = disableDefaultPropsExceptForClasses
2076- ? props
2077- : resolveDefaultPropsOnNonClassComponent ( Component , props ) ;
20782050 workInProgress . tag = FunctionComponent ;
20792051 if ( __DEV__ ) {
20802052 validateFunctionComponentInDev ( workInProgress , Component ) ;
@@ -2085,16 +2057,13 @@ function mountLazyComponent(
20852057 null,
20862058 workInProgress,
20872059 Component,
2088- resolvedProps ,
2060+ props ,
20892061 renderLanes,
20902062 );
20912063 }
20922064 } else if ( Component !== undefined && Component !== null ) {
20932065 const $$typeof = Component . $$typeof ;
20942066 if ( $$typeof === REACT_FORWARD_REF_TYPE ) {
2095- const resolvedProps = disableDefaultPropsExceptForClasses
2096- ? props
2097- : resolveDefaultPropsOnNonClassComponent ( Component , props ) ;
20982067 workInProgress . tag = ForwardRef ;
20992068 if ( __DEV__ ) {
21002069 workInProgress . type = Component =
@@ -2104,24 +2073,16 @@ function mountLazyComponent(
21042073 null,
21052074 workInProgress,
21062075 Component,
2107- resolvedProps ,
2076+ props ,
21082077 renderLanes,
21092078 );
21102079 } else if ( $$typeof === REACT_MEMO_TYPE ) {
2111- const resolvedProps = disableDefaultPropsExceptForClasses
2112- ? props
2113- : resolveDefaultPropsOnNonClassComponent ( Component , props ) ;
21142080 workInProgress . tag = MemoComponent ;
21152081 return updateMemoComponent (
21162082 null ,
21172083 workInProgress ,
21182084 Component ,
2119- disableDefaultPropsExceptForClasses
2120- ? resolvedProps
2121- : resolveDefaultPropsOnNonClassComponent (
2122- Component . type ,
2123- resolvedProps ,
2124- ) , // The inner type can have defaults too
2085+ props ,
21252086 renderLanes ,
21262087 ) ;
21272088 }
@@ -2198,22 +2159,6 @@ function validateFunctionComponentInDev(workInProgress: Fiber, Component: any) {
21982159 ) ;
21992160 }
22002161
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-
22172162 if ( typeof Component . getDerivedStateFromProps === 'function' ) {
22182163 const componentName = getComponentNameFromType ( Component ) || 'Unknown' ;
22192164
@@ -4175,17 +4120,11 @@ function beginWork(
41754120 }
41764121 case FunctionComponent : {
41774122 const Component = workInProgress . type ;
4178- const unresolvedProps = workInProgress . pendingProps ;
4179- const resolvedProps =
4180- disableDefaultPropsExceptForClasses ||
4181- workInProgress . elementType === Component
4182- ? unresolvedProps
4183- : resolveDefaultPropsOnNonClassComponent ( Component , unresolvedProps ) ;
41844123 return updateFunctionComponent (
41854124 current ,
41864125 workInProgress ,
41874126 Component ,
4188- resolvedProps ,
4127+ workInProgress . pendingProps ,
41894128 renderLanes ,
41904129 ) ;
41914130 }
@@ -4226,18 +4165,11 @@ function beginWork(
42264165 case HostPortal :
42274166 return updatePortalComponent ( current , workInProgress , renderLanes ) ;
42284167 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 ) ;
42364168 return updateForwardRef (
42374169 current ,
42384170 workInProgress ,
4239- type ,
4240- resolvedProps ,
4171+ workInProgress . type ,
4172+ workInProgress . pendingProps ,
42414173 renderLanes ,
42424174 ) ;
42434175 }
@@ -4252,20 +4184,11 @@ function beginWork(
42524184 case ContextConsumer :
42534185 return updateContextConsumer ( current , workInProgress , renderLanes ) ;
42544186 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 ) ;
42644187 return updateMemoComponent (
42654188 current ,
42664189 workInProgress ,
4267- type ,
4268- resolvedProps ,
4190+ workInProgress . type ,
4191+ workInProgress . pendingProps ,
42694192 renderLanes ,
42704193 ) ;
42714194 }
0 commit comments