public/lib/react.development.js
/**
 * Warn if the element doesn't have an explicit key assigned to it.
 * This element is in an array. The array could grow and shrink or be
 * reordered. All children that haven't already been validated are required to
 * have a "key" property assigned to it. Error statuses are cached so a warning
 * will only be shown once.
 *
 * @internal
 * @param {ReactElement} element Element that requires a key.
 * @param {*} parentType element's parent's type.
 */
Warn if the element doesn't have an explicit key assigned to it.
This element is in an array. The array could grow and shrink or be
reordered. All children that haven't already been validated are required to
have a "key" property assigned to it. Error statuses are cached so a warning
will only be shown once.

@internal
@param {ReactElement} element Element that requires a key.
@param {*} parentType element's parent's type.
Warn if the element doesn ' t have an explicit key assigned to it . This element is in an array . The array could grow and shrink or be reordered . All children that haven ' t already been validated are required to have a " key " property assigned to it . Error statuses are cached so a warning will only be shown once . @internal @param { ReactElement } element Element that requires a key . @param { * } parentType element ' s parent ' s type .
function validateExplicitKey(element, parentType) {
  if (!element._store || element._store.validated || element.key != null) {
    return;
  }
  element._store.validated = true;
  var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);
  if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {
    return;
  }
  ownerHasKeyUseWarning[currentComponentErrorInfo] = true;
  var childOwner = '';
  if (element && element._owner && element._owner !== ReactCurrentOwner.current) {
    childOwner = ' It was passed a child from ' + getComponentName(element._owner) + '.';
  }
  currentlyValidatingElement = element;
  {
    warning_1(false, 'Each child in an array or iterator should have a unique "key" prop.' + '%s%s See https://fb.me/react-warning-keys for more information.%s', currentComponentErrorInfo, childOwner, getStackAddendum());
  }
  currentlyValidatingElement = null;
}
function validateExplicitKey ( element , parentType ) { if ( ! element . _store || element . _store . validated || element . key != null ) { return ; } element . _store . validated = true ; var currentComponentErrorInfo = getCurrentComponentErrorInfo ( parentType ) ; if ( ownerHasKeyUseWarning [ currentComponentErrorInfo ] ) { return ; } ownerHasKeyUseWarning [ currentComponentErrorInfo ] = true ; var childOwner = '' ; if ( element && element . _owner && element . _owner !== ReactCurrentOwner . current ) { childOwner = ' It was passed a child from ' + getComponentName ( element . _owner ) + '.' ; } currentlyValidatingElement = element ; { warning_1 ( false , 'Each child in an array or iterator should have a unique "key" prop.' + '%s%s See https://fb.me/react-warning-keys for more information.%s' , currentComponentErrorInfo , childOwner , getStackAddendum ( ) ) ; } currentlyValidatingElement = null ; }
Warn if the element doesn't have an explicit key assigned to it.
Warn if the element doesn ' t have an explicit key assigned to it .
// Usually the current owner is the offender, but if it accepts children as a // property, it may be the creator of the child that's responsible for // assigning it a key. // Give the component that originally created this child.