function unmountComponentAtNode(container) {
	    // Various parts of our code (such as ReactCompositeComponent's
	    // _renderValidatedComponent) assume that calls to render aren't nested;
	    // verify that that's the case. (Strictly speaking, unmounting won't cause a
	    // render but we still don't expect to be in a render call here.)
	    process.env.NODE_ENV !== 'production' ? warning(ReactCurrentOwner.current == null, 'unmountComponentAtNode(): Render methods should be a pure function ' + 'of props and state; triggering nested component updates from render ' + 'is not allowed. If necessary, trigger nested updates in ' + 'componentDidUpdate. Check the render method of %s.', ReactCurrentOwner.current && ReactCurrentOwner.current.getName() || 'ReactCompositeComponent') : void 0;

	    !(container && (container.nodeType === ELEMENT_NODE_TYPE || container.nodeType === DOC_NODE_TYPE || container.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE)) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'unmountComponentAtNode(...): Target container is not a DOM element.') : invariant(false) : void 0;

	    var prevComponent = getTopLevelWrapperInContainer(container);
	    if (!prevComponent) {
	      // Check if the node being unmounted was rendered by React, but isn't a
	      // root node.
	      var containerHasNonRootReactChild = hasNonRootReactChild(container);

	      // Check if the container itself is a React root node.
	      var isContainerReactRoot = container.nodeType === 1 && container.hasAttribute(ROOT_ATTR_NAME);

	      if (process.env.NODE_ENV !== 'production') {
	        process.env.NODE_ENV !== 'production' ? warning(!containerHasNonRootReactChild, 'unmountComponentAtNode(): The node you\'re attempting to unmount ' + 'was rendered by React and is not a top-level container. %s', isContainerReactRoot ? 'You may have accidentally passed in a React root node instead ' + 'of its container.' : 'Instead, have the parent component update its state and ' + 'rerender in order to remove this component.') : void 0;
	      }

	      return false;
	    }
	    delete instancesByReactRootID[prevComponent._instance.rootID];
	    ReactUpdates.batchedUpdates(unmountComponentFromNode, prevComponent, container, false);
	    return true;
	  }
/**
	   * Unmounts and destroys the React component rendered in the `container`.
	   * See https://facebook.github.io/react/docs/top-level-api.html#reactdom.unmountcomponentatnode
	   *
	   * @param {DOMElement} container DOM element containing a React component.
	   * @return {boolean} True if a component was found in and unmounted from
	   *                   `container`
	   */
Unmounts and destroys the React component rendered in the `container`.

@param {DOMElement} container DOM element containing a React component.
@return {boolean} True if a component was found in and unmounted from
`container`
Unmounts and destroys the React component rendered in the ` container ` . @param { DOMElement } container DOM element containing a React component . @return { boolean } True if a component was found in and unmounted from ` container `
function unmountComponentAtNode(container) {
	    process.env.NODE_ENV !== 'production' ? warning(ReactCurrentOwner.current == null, 'unmountComponentAtNode(): Render methods should be a pure function ' + 'of props and state; triggering nested component updates from render ' + 'is not allowed. If necessary, trigger nested updates in ' + 'componentDidUpdate. Check the render method of %s.', ReactCurrentOwner.current && ReactCurrentOwner.current.getName() || 'ReactCompositeComponent') : void 0;
	    !(container && (container.nodeType === ELEMENT_NODE_TYPE || container.nodeType === DOC_NODE_TYPE || container.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE)) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'unmountComponentAtNode(...): Target container is not a DOM element.') : invariant(false) : void 0;
	    var prevComponent = getTopLevelWrapperInContainer(container);
	    if (!prevComponent) {
	      var containerHasNonRootReactChild = hasNonRootReactChild(container);
	      var isContainerReactRoot = container.nodeType === 1 && container.hasAttribute(ROOT_ATTR_NAME);
	      if (process.env.NODE_ENV !== 'production') {
	        process.env.NODE_ENV !== 'production' ? warning(!containerHasNonRootReactChild, 'unmountComponentAtNode(): The node you\'re attempting to unmount ' + 'was rendered by React and is not a top-level container. %s', isContainerReactRoot ? 'You may have accidentally passed in a React root node instead ' + 'of its container.' : 'Instead, have the parent component update its state and ' + 'rerender in order to remove this component.') : void 0;
	      }
	      return false;
	    }
	    delete instancesByReactRootID[prevComponent._instance.rootID];
	    ReactUpdates.batchedUpdates(unmountComponentFromNode, prevComponent, container, false);
	    return true;
	  }
function unmountComponentAtNode ( container ) { process . env . NODE_ENV !== 'production' ? warning ( ReactCurrentOwner . current == null , 'unmountComponentAtNode(): Render methods should be a pure function ' + 'of props and state; triggering nested component updates from render ' + 'is not allowed. If necessary, trigger nested updates in ' + 'componentDidUpdate. Check the render method of %s.' , ReactCurrentOwner . current && ReactCurrentOwner . current . getName ( ) || 'ReactCompositeComponent' ) : void 0 ; ! ( container && ( container . nodeType === ELEMENT_NODE_TYPE || container . nodeType === DOC_NODE_TYPE || container . nodeType === DOCUMENT_FRAGMENT_NODE_TYPE ) ) ? process . env . NODE_ENV !== 'production' ? invariant ( false , 'unmountComponentAtNode(...): Target container is not a DOM element.' ) : invariant ( false ) : void 0 ; var prevComponent = getTopLevelWrapperInContainer ( container ) ; if ( ! prevComponent ) { var containerHasNonRootReactChild = hasNonRootReactChild ( container ) ; var isContainerReactRoot = container . nodeType === 1 && container . hasAttribute ( ROOT_ATTR_NAME ) ; if ( process . env . NODE_ENV !== 'production' ) { process . env . NODE_ENV !== 'production' ? warning ( ! containerHasNonRootReactChild , 'unmountComponentAtNode(): The node you\'re attempting to unmount ' + 'was rendered by React and is not a top-level container. %s' , isContainerReactRoot ? 'You may have accidentally passed in a React root node instead ' + 'of its container.' : 'Instead, have the parent component update its state and ' + 'rerender in order to remove this component.' ) : void 0 ; } return false ; } delete instancesByReactRootID [ prevComponent . _instance . rootID ] ; ReactUpdates . batchedUpdates ( unmountComponentFromNode , prevComponent , container , false ) ; return true ; }
Unmounts and destroys the React component rendered in the `container`.
Unmounts and destroys the React component rendered in the ` container ` .
// Various parts of our code (such as ReactCompositeComponent's // _renderValidatedComponent) assume that calls to render aren't nested; // verify that that's the case. (Strictly speaking, unmounting won't cause a // render but we still don't expect to be in a render call here.) // Check if the node being unmounted was rendered by React, but isn't a // root node. // Check if the container itself is a React root node.