code: function enqueueSetState(publicInstance, partialState) {
      if (false) {
        ReactInstrumentation.debugTool.onSetState();
        process.env.NODE_ENV !== 'production' ? warning(partialState != null, 'setState(...): You passed an undefined or null state object; ' + 'instead, use forceUpdate().') : void 0;
      }
  
      var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'setState');
  
      if (!internalInstance) {
        return;
      }
  
      var queue = internalInstance._pendingStateQueue || (internalInstance._pendingStateQueue = []);
      queue.push(partialState);
  
      enqueueUpdate(internalInstance);
    }
docs: Sets a subset of the state. This only exists because _pendingState is
  internal. This provides a merging strategy that is not available to deep
  properties which is confusing. TODO: Expose pendingState or don't use it
  during the merge.
  
  @param {ReactClass} publicInstance The instance that should rerender.
  @param {object} partialState Next partial state to be merged with state.
  @internal