@samitouri / QOS-React-2 / commits / 0a3aa8493a

Split message for deep numeric key warning too

Ben Alpert committed May 13, 2015 at 15:23 UTC 0a3aa8493aa014668f5dd3bac30868c18397538e
1 file changed +7 -3
src/classic/element/ReactElementValidator.js
+7 -3
@@ -116,13 +116,17 @@ function validateExplicitKey(element, parentType, deep) {
116 * @param {string} name Property name of the key.
117 * @param {ReactElement} element Component that requires a key.
118 * @param {*} parentType element's parent's type.
119 + * @param {boolean} deep false if top-level collection, true if nested
120 */
120 -function validatePropertyKey(name, element, parentType) {
121 +function validatePropertyKey(name, element, parentType, deep) {
122 if (!NUMERIC_PROPERTY_REGEX.test(name)) {
123 return;
124 }
125 warnAndMonitorForKeyUse(
125 - 'Child objects should have non-numeric keys so ordering is preserved.',
126 + deep ?
127 + 'Nested child objects should have non-numeric keys ' +
128 + 'so ordering is preserved.' :
129 + 'Child objects should have non-numeric keys so ordering is preserved.',
130 element,
131 parentType
132 );
@@ -226,7 +230,7 @@ function validateChildKeys(node, parentType, deep) {
230 var fragment = ReactFragment.extractIfFragment(node);
231 for (var key in fragment) {
232 if (fragment.hasOwnProperty(key)) {
229 - validatePropertyKey(key, fragment[key], parentType);
233 + validatePropertyKey(key, fragment[key], parentType, deep);
234 validateChildKeys(fragment[key], parentType, true);
235 }
236 }