unmount function

void unmount(
  1. dynamic instanceOrContainerNode
)

Unmounts a React component.

instanceOrContainerNode can be a ReactComponent/Element React instance, or an Element container node (argument to react_dom.render).

For convenience, this method does nothing if instanceOrContainerNode is null, or if it's a non-mounted React instance.

Implementation

void unmount(dynamic instanceOrContainerNode) {
  if (instanceOrContainerNode == null) return;

  final Element? containerNode;

  if (instanceOrContainerNode is Element) {
    containerNode = instanceOrContainerNode;
  } else if (
      react_test_utils.isCompositeComponent(instanceOrContainerNode) ||
      react_test_utils.isDOMComponent(instanceOrContainerNode)
  ) {
    try {
      containerNode = findDomNode(instanceOrContainerNode)?.parent;
    } catch (e) {
      return;
    }
  } else {
    throw ArgumentError(
        '`instanceOrNode` must be null, a ReactComponent instance, or an Element. Was: $instanceOrContainerNode.'
    );
  }

  if (containerNode != null) react_dom.unmountComponentAtNode(containerNode);
}