@@ -229,13 +229,18 @@ function commitBeforeMutationLifeCycles(
229229 const prevState = current . memoizedState ;
230230 startPhaseTimer ( finishedWork , 'getSnapshotBeforeUpdate' ) ;
231231 const instance = finishedWork . stateNode ;
232- instance . props = resolveDefaultProps (
233- finishedWork . type ,
234- finishedWork . memoizedProps ,
235- ) ;
232+ instance . props =
233+ finishedWork . elementType === finishedWork . type
234+ ? finishedWork . memoizedProps
235+ : resolveDefaultProps (
236+ finishedWork . type ,
237+ finishedWork . memoizedProps ,
238+ ) ;
236239 instance . state = finishedWork . memoizedState ;
237240 const snapshot = instance . getSnapshotBeforeUpdate (
238- resolveDefaultProps ( finishedWork . type , prevProps ) ,
241+ finishedWork . elementType === finishedWork . type
242+ ? prevProps
243+ : resolveDefaultProps ( finishedWork . type , prevProps ) ,
239244 prevState ,
240245 ) ;
241246 if ( __DEV__ ) {
@@ -349,24 +354,30 @@ function commitLifeCycles(
349354 if ( finishedWork . effectTag & Update ) {
350355 if ( current === null ) {
351356 startPhaseTimer ( finishedWork , 'componentDidMount' ) ;
352- instance . props = resolveDefaultProps (
353- finishedWork . type ,
354- finishedWork . memoizedProps ,
355- ) ;
357+ instance . props =
358+ finishedWork . elementType === finishedWork . type
359+ ? finishedWork . memoizedProps
360+ : resolveDefaultProps (
361+ finishedWork . type ,
362+ finishedWork . memoizedProps ,
363+ ) ;
356364 instance . state = finishedWork . memoizedState ;
357365 instance . componentDidMount ( ) ;
358366 stopPhaseTimer ( ) ;
359367 } else {
360- const prevProps = resolveDefaultProps (
361- finishedWork . type ,
362- current . memoizedProps ,
363- ) ;
368+ const prevProps =
369+ finishedWork . elementType === finishedWork . type
370+ ? current . memoizedProps
371+ : resolveDefaultProps ( finishedWork . type , current . memoizedProps ) ;
364372 const prevState = current . memoizedState ;
365373 startPhaseTimer ( finishedWork , 'componentDidUpdate' ) ;
366- instance . props = resolveDefaultProps (
367- finishedWork . type ,
368- finishedWork . memoizedProps ,
369- ) ;
374+ instance . props =
375+ finishedWork . elementType === finishedWork . type
376+ ? finishedWork . memoizedProps
377+ : resolveDefaultProps (
378+ finishedWork . type ,
379+ finishedWork . memoizedProps ,
380+ ) ;
370381 instance . state = finishedWork . memoizedState ;
371382 instance . componentDidUpdate (
372383 prevProps ,
0 commit comments