Merge pull request #2579 from jsfb/context-to-warning-module

Use warning module for context warning instead of invoking console.warn ...
This commit is contained in:
Jim 2014-11-24 14:42:23 -08:00
commit e7f4badf4a
2 changed files with 13 additions and 15 deletions

View File

@ -597,19 +597,16 @@ var ReactCompositeComponentMixin = assign({},
_warnIfContextsDiffer: function(ownerBasedContext, parentBasedContext) {
var ownerKeys = Object.keys(ownerBasedContext).sort();
var parentKeys = Object.keys(parentBasedContext).sort();
if (ownerKeys.length != parentKeys.length || ownerKeys.toString() != parentKeys.toString()) {
var message = ("owner based context (keys: " +
Object.keys(ownerBasedContext) + ") does not equal parent based" +
" context (keys: "+Object.keys(parentBasedContext)+")" +
" while mounting " +
(this._instance.constructor.displayName || 'ReactCompositeComponent'));
console.warn(message);
monitorCodeUse('contexts_differ', {
ownerBasedKeys: Object.keys(ownerBasedContext),
parentBasedKeys: Object.keys(parentBasedContext),
mounting: (this._instance.constructor.displayName || 'ReactCompositeComponent')
});
}
warning(
ownerKeys.length === parentKeys.length &&
ownerKeys.toString() === parentKeys.toString(),
'owner based context (keys: %s) does not equal parent based' +
' context (keys: %s) while mounting %s' +
' (see: http://fb.me/react-context-by-parent)',
Object.keys(ownerBasedContext),
Object.keys(parentBasedContext),
(this._instance.constructor.displayName || 'ReactCompositeComponent')
);
},
/**

View File

@ -1026,8 +1026,9 @@ describe('ReactCompositeComponent', function() {
expect(console.warn.mock.calls.length).toBe(2);
expect(console.warn.mock.calls[1][0]).toBe(
'owner based context (keys: foo) does not equal parent based ' +
'context (keys: ) while mounting ReactCompositeComponent'
'Warning: owner based context (keys: foo) does not equal parent based ' +
'context (keys: ) while mounting ReactCompositeComponent ' +
'(see: http://fb.me/react-context-by-parent)'
);
});