@@ -597,16 +597,34 @@ var ReactCompositeComponentMixin = assign({},
597597 _warnIfContextsDiffer : function ( ownerBasedContext , parentBasedContext ) {
598598 var ownerKeys = Object . keys ( ownerBasedContext ) . sort ( ) ;
599599 var parentKeys = Object . keys ( parentBasedContext ) . sort ( ) ;
600- warning (
601- ownerKeys . length === parentKeys . length &&
602- ownerKeys . toString ( ) === parentKeys . toString ( ) ,
603- 'owner based context (keys: %s) does not equal parent based' +
604- ' context (keys: %s) while mounting %s' +
605- ' (see: http://fb.me/react-context-by-parent)' ,
606- Object . keys ( ownerBasedContext ) ,
607- Object . keys ( parentBasedContext ) ,
608- ( this . _instance . constructor . displayName || 'ReactCompositeComponent' )
609- ) ;
600+ var displayName = this . _instance . constructor . displayName || 'ReactCompositeComponent' ;
601+ if ( ownerKeys . length !== parentKeys . length ||
602+ ownerKeys . toString ( ) !== parentKeys . toString ( ) ) {
603+ warning (
604+ ownerKeys . length === parentKeys . length &&
605+ ownerKeys . toString ( ) === parentKeys . toString ( ) ,
606+ 'owner based context (keys: %s) does not equal parent based ' +
607+ 'context (keys: %s) while mounting %s ' +
608+ '(see: http://fb.me/react-context-by-parent)' ,
609+ Object . keys ( ownerBasedContext ) ,
610+ Object . keys ( parentBasedContext ) ,
611+ displayName
612+ ) ;
613+ } else {
614+ for ( key in parentKeys ) {
615+ var key = parentKeys [ key ] ;
616+ warning (
617+ ownerBasedContext [ key ] === parentBasedContext [ key ] ,
618+ 'owner-based and parent-based contexts differ ' +
619+ '(values: `%s` vs `%s`) for key (%s) while mounting %s ' +
620+ '(see: http://fb.me/react-context-by-parent)' ,
621+ ownerBasedContext [ key ] ,
622+ parentBasedContext [ key ] ,
623+ key ,
624+ displayName
625+ ) ;
626+ }
627+ }
610628 } ,
611629
612630 /**
0 commit comments