@@ -146,25 +146,30 @@ function warnAndMonitorForKeyUse(message, element, parentType) {
146
146
}
147
147
memoizer [ useName ] = true ;
148
148
149
- message + =
149
+ var parentOrOwnerAddendum =
150
150
ownerName ? ` Check the render method of ${ ownerName } .` :
151
151
parentName ? ` Check the React.render call using <${ parentName } >.` :
152
152
'' ;
153
153
154
154
// Usually the current owner is the offender, but if it accepts children as a
155
155
// property, it may be the creator of the child that's responsible for
156
156
// assigning it a key.
157
+ var childOwnerAddendum = '' ;
157
158
if ( element &&
158
159
element . _owner &&
159
160
element . _owner !== ReactCurrentOwner . current ) {
160
161
// Name of the component that originally created this child.
161
162
var childOwnerName = getName ( element . _owner ) ;
162
163
163
- message + = ` It was passed a child from ${ childOwnerName } .` ;
164
+ childOwnerAddendum = ` It was passed a child from ${ childOwnerName } .` ;
164
165
}
165
166
166
- message += ' See http://fb.me/react-warning-keys for more information.' ;
167
- warning ( false , message ) ;
167
+ warning (
168
+ false ,
169
+ message + '%s%s See http://fb.me/react-warning-keys for more information.' ,
170
+ parentOrOwnerAddendum ,
171
+ childOwnerAddendum
172
+ ) ;
168
173
}
169
174
170
175
/**
@@ -248,7 +253,7 @@ function checkPropTypes(componentName, propTypes, props, location) {
248
253
loggedTypeFailures [ error . message ] = true ;
249
254
250
255
var addendum = getDeclarationErrorAddendum ( this ) ;
251
- warning ( false , 'Failed propType: ' + error . message + addendum ) ;
256
+ warning ( false , 'Failed propType: %s%s' , error . message , addendum ) ;
252
257
}
253
258
}
254
259
}
0 commit comments