diff --git a/src/addons/ReactFragment.js b/src/addons/ReactFragment.js index a9fb1d156c..19cb40b4bd 100644 --- a/src/addons/ReactFragment.js +++ b/src/addons/ReactFragment.js @@ -141,7 +141,8 @@ var ReactFragment = { warning( didWarnForFragment(fragment), 'Any use of a keyed object should be wrapped in ' + - 'React.addons.createFragment(object) before passed as a child.' + 'React.addons.createFragment(object) before being passed as a ' + + 'child.' ); return fragment; } diff --git a/src/classic/types/ReactPropTypes.js b/src/classic/types/ReactPropTypes.js index 03b2edf394..e8f913f573 100644 --- a/src/classic/types/ReactPropTypes.js +++ b/src/classic/types/ReactPropTypes.js @@ -12,6 +12,7 @@ 'use strict'; var ReactElement = require('ReactElement'); +var ReactFragment = require('ReactFragment'); var ReactPropTypeLocationNames = require('ReactPropTypeLocationNames'); var emptyFunction = require('emptyFunction'); @@ -301,6 +302,7 @@ function isNode(propValue) { if (ReactElement.isValidElement(propValue)) { return true; } + propValue = ReactFragment.extractIfFragment(propValue); for (var k in propValue) { if (!isNode(propValue[k])) { return false; diff --git a/src/classic/types/__tests__/ReactPropTypes-test.js b/src/classic/types/__tests__/ReactPropTypes-test.js index 1db035344c..c3d9a49d8c 100644 --- a/src/classic/types/__tests__/ReactPropTypes-test.js +++ b/src/classic/types/__tests__/ReactPropTypes-test.js @@ -13,6 +13,7 @@ var PropTypes; var React; +var ReactFragment; var ReactPropTypeLocations; var ReactTestUtils; @@ -48,6 +49,7 @@ describe('ReactPropTypes', function() { beforeEach(function() { PropTypes = require('ReactPropTypes'); React = require('React'); + ReactFragment = require('ReactFragment'); ReactPropTypeLocations = require('ReactPropTypeLocations'); ReactTestUtils = require('ReactTestUtils'); }); @@ -356,6 +358,7 @@ describe('ReactPropTypes', function() { }); it('should not warn for valid values', function() { + spyOn(console, 'warn'); typeCheckPass(PropTypes.node,
); typeCheckPass(PropTypes.node, false); typeCheckPass(PropTypes.node,