function updateComponent(transaction, prevParentElement, nextParentElement, prevUnmaskedContext, nextUnmaskedContext) {
	    var inst = this._instance;
	    var willReceive = false;
	    var nextContext;
	    var nextProps;

	    // Determine if the context has changed or not
	    if (this._context === nextUnmaskedContext) {
	      nextContext = inst.context;
	    } else {
	      nextContext = this._processContext(nextUnmaskedContext);
	      willReceive = true;
	    }

	    // Distinguish between a props update versus a simple state update
	    if (prevParentElement === nextParentElement) {
	      // Skip checking prop types again -- we don't read inst.props to avoid
	      // warning for DOM component props in this upgrade
	      nextProps = nextParentElement.props;
	    } else {
	      nextProps = this._processProps(nextParentElement.props);
	      willReceive = true;
	    }

	    // An update here will schedule an update but immediately set
	    // _pendingStateQueue which will ensure that any state updates gets
	    // immediately reconciled instead of waiting for the next batch.
	    if (willReceive && inst.componentWillReceiveProps) {
	      if (process.env.NODE_ENV !== 'production') {
	        if (this._debugID !== 0) {
	          ReactInstrumentation.debugTool.onBeginLifeCycleTimer(this._debugID, 'componentWillReceiveProps');
	        }
	      }
	      inst.componentWillReceiveProps(nextProps, nextContext);
	      if (process.env.NODE_ENV !== 'production') {
	        if (this._debugID !== 0) {
	          ReactInstrumentation.debugTool.onEndLifeCycleTimer(this._debugID, 'componentWillReceiveProps');
	        }
	      }
	    }

	    var nextState = this._processPendingState(nextProps, nextContext);
	    var shouldUpdate = true;

	    if (!this._pendingForceUpdate && inst.shouldComponentUpdate) {
	      if (process.env.NODE_ENV !== 'production') {
	        if (this._debugID !== 0) {
	          ReactInstrumentation.debugTool.onBeginLifeCycleTimer(this._debugID, 'shouldComponentUpdate');
	        }
	      }
	      shouldUpdate = inst.shouldComponentUpdate(nextProps, nextState, nextContext);
	      if (process.env.NODE_ENV !== 'production') {
	        if (this._debugID !== 0) {
	          ReactInstrumentation.debugTool.onEndLifeCycleTimer(this._debugID, 'shouldComponentUpdate');
	        }
	      }
	    }

	    if (process.env.NODE_ENV !== 'production') {
	      process.env.NODE_ENV !== 'production' ? warning(shouldUpdate !== undefined, '%s.shouldComponentUpdate(): Returned undefined instead of a ' + 'boolean value. Make sure to return true or false.', this.getName() || 'ReactCompositeComponent') : void 0;
	    }

	    this._updateBatchNumber = null;
	    if (shouldUpdate) {
	      this._pendingForceUpdate = false;
	      // Will set `this.props`, `this.state` and `this.context`.
	      this._performComponentUpdate(nextParentElement, nextProps, nextState, nextContext, transaction, nextUnmaskedContext);
	    } else {
	      // If it's determined that a component should not update, we still want
	      // to set props and state but we shortcut the rest of the update.
	      this._currentElement = nextParentElement;
	      this._context = nextUnmaskedContext;
	      inst.props = nextProps;
	      inst.state = nextState;
	      inst.context = nextContext;
	    }
	  }
/**
	   * Perform an update to a mounted component. The componentWillReceiveProps and
	   * shouldComponentUpdate methods are called, then (assuming the update isn't
	   * skipped) the remaining update lifecycle methods are called and the DOM
	   * representation is updated.
	   *
	   * By default, this implements React's rendering and reconciliation algorithm.
	   * Sophisticated clients may wish to override this.
	   *
	   * @param {ReactReconcileTransaction} transaction
	   * @param {ReactElement} prevParentElement
	   * @param {ReactElement} nextParentElement
	   * @internal
	   * @overridable
	   */
Perform an update to a mounted component. The componentWillReceiveProps and
shouldComponentUpdate methods are called, then (assuming the update isn't
skipped) the remaining update lifecycle methods are called and the DOM
representation is updated.

By default, this implements React's rendering and reconciliation algorithm.
Sophisticated clients may wish to override this.


Perform an update to a mounted component . The componentWillReceiveProps and shouldComponentUpdate methods are called then ( assuming the update isn ' t skipped ) the remaining update lifecycle methods are called and the DOM representation is updated . By default this implements React ' s rendering and reconciliation algorithm . Sophisticated clients may wish to override this .
function updateComponent(transaction, prevParentElement, nextParentElement, prevUnmaskedContext, nextUnmaskedContext) {
	    var inst = this._instance;
	    var willReceive = false;
	    var nextContext;
	    var nextProps;
	    if (this._context === nextUnmaskedContext) {
	      nextContext = inst.context;
	    } else {
	      nextContext = this._processContext(nextUnmaskedContext);
	      willReceive = true;
	    }
	    if (prevParentElement === nextParentElement) {
	      nextProps = nextParentElement.props;
	    } else {
	      nextProps = this._processProps(nextParentElement.props);
	      willReceive = true;
	    }
	    if (willReceive && inst.componentWillReceiveProps) {
	      if (process.env.NODE_ENV !== 'production') {
	        if (this._debugID !== 0) {
	          ReactInstrumentation.debugTool.onBeginLifeCycleTimer(this._debugID, 'componentWillReceiveProps');
	        }
	      }
	      inst.componentWillReceiveProps(nextProps, nextContext);
	      if (process.env.NODE_ENV !== 'production') {
	        if (this._debugID !== 0) {
	          ReactInstrumentation.debugTool.onEndLifeCycleTimer(this._debugID, 'componentWillReceiveProps');
	        }
	      }
	    }
	    var nextState = this._processPendingState(nextProps, nextContext);
	    var shouldUpdate = true;
	    if (!this._pendingForceUpdate && inst.shouldComponentUpdate) {
	      if (process.env.NODE_ENV !== 'production') {
	        if (this._debugID !== 0) {
	          ReactInstrumentation.debugTool.onBeginLifeCycleTimer(this._debugID, 'shouldComponentUpdate');
	        }
	      }
	      shouldUpdate = inst.shouldComponentUpdate(nextProps, nextState, nextContext);
	      if (process.env.NODE_ENV !== 'production') {
	        if (this._debugID !== 0) {
	          ReactInstrumentation.debugTool.onEndLifeCycleTimer(this._debugID, 'shouldComponentUpdate');
	        }
	      }
	    }
	    if (process.env.NODE_ENV !== 'production') {
	      process.env.NODE_ENV !== 'production' ? warning(shouldUpdate !== undefined, '%s.shouldComponentUpdate(): Returned undefined instead of a ' + 'boolean value. Make sure to return true or false.', this.getName() || 'ReactCompositeComponent') : void 0;
	    }
	    this._updateBatchNumber = null;
	    if (shouldUpdate) {
	      this._pendingForceUpdate = false;
	      this._performComponentUpdate(nextParentElement, nextProps, nextState, nextContext, transaction, nextUnmaskedContext);
	    } else {
	      this._currentElement = nextParentElement;
	      this._context = nextUnmaskedContext;
	      inst.props = nextProps;
	      inst.state = nextState;
	      inst.context = nextContext;
	    }
	  }
function updateComponent ( transaction , prevParentElement , nextParentElement , prevUnmaskedContext , nextUnmaskedContext ) { var inst = this . _instance ; var willReceive = false ; var nextContext ; var nextProps ; if ( this . _context === nextUnmaskedContext ) { nextContext = inst . context ; } else { nextContext = this . _processContext ( nextUnmaskedContext ) ; willReceive = true ; } if ( prevParentElement === nextParentElement ) { nextProps = nextParentElement . props ; } else { nextProps = this . _processProps ( nextParentElement . props ) ; willReceive = true ; } if ( willReceive && inst . componentWillReceiveProps ) { if ( process . env . NODE_ENV !== 'production' ) { if ( this . _debugID !== 0 ) { ReactInstrumentation . debugTool . onBeginLifeCycleTimer ( this . _debugID , 'componentWillReceiveProps' ) ; } } inst . componentWillReceiveProps ( nextProps , nextContext ) ; if ( process . env . NODE_ENV !== 'production' ) { if ( this . _debugID !== 0 ) { ReactInstrumentation . debugTool . onEndLifeCycleTimer ( this . _debugID , 'componentWillReceiveProps' ) ; } } } var nextState = this . _processPendingState ( nextProps , nextContext ) ; var shouldUpdate = true ; if ( ! this . _pendingForceUpdate && inst . shouldComponentUpdate ) { if ( process . env . NODE_ENV !== 'production' ) { if ( this . _debugID !== 0 ) { ReactInstrumentation . debugTool . onBeginLifeCycleTimer ( this . _debugID , 'shouldComponentUpdate' ) ; } } shouldUpdate = inst . shouldComponentUpdate ( nextProps , nextState , nextContext ) ; if ( process . env . NODE_ENV !== 'production' ) { if ( this . _debugID !== 0 ) { ReactInstrumentation . debugTool . onEndLifeCycleTimer ( this . _debugID , 'shouldComponentUpdate' ) ; } } } if ( process . env . NODE_ENV !== 'production' ) { process . env . NODE_ENV !== 'production' ? warning ( shouldUpdate !== undefined , '%s.shouldComponentUpdate(): Returned undefined instead of a ' + 'boolean value. Make sure to return true or false.' , this . getName ( ) || 'ReactCompositeComponent' ) : void 0 ; } this . _updateBatchNumber = null ; if ( shouldUpdate ) { this . _pendingForceUpdate = false ; this . _performComponentUpdate ( nextParentElement , nextProps , nextState , nextContext , transaction , nextUnmaskedContext ) ; } else { this . _currentElement = nextParentElement ; this . _context = nextUnmaskedContext ; inst . props = nextProps ; inst . state = nextState ; inst . context = nextContext ; } }
Perform an update to a mounted component.
Perform an update to a mounted component .
// Determine if the context has changed or not // Distinguish between a props update versus a simple state update // Skip checking prop types again -- we don't read inst.props to avoid // warning for DOM component props in this upgrade // An update here will schedule an update but immediately set // _pendingStateQueue which will ensure that any state updates gets // immediately reconciled instead of waiting for the next batch. // Will set `this.props`, `this.state` and `this.context`. // If it's determined that a component should not update, we still want // to set props and state but we shortcut the rest of the update.