code: 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;
  
    // 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.
    var childOwner = '';
    if (element && element._owner && element._owner !== ReactCurrentOwner_1.current) {
      // Give the component that originally created this child.
      childOwner = ' It was passed a child from ' + getComponentName(element._owner) + '.';
    }
  
    currentlyValidatingElement = element;
    {
      warning$3(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$1());
    }
    currentlyValidatingElement = null;
  }
docs: 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.