mount method

  1. @mustCallSuper
void mount (
  1. Element parent,
  2. dynamic newSlot
)
@mustCallSuper

Add this element to the tree in the given slot of the given parent.

The framework calls this function when a newly created element is added to the tree for the first time. Use this method to initialize state that depends on having a parent. State that is independent of the parent can more easily be initialized in the constructor.

This method transitions the element from the "initial" lifecycle state to the "active" lifecycle state.

Subclasses that override this method are likely to want to also override update, visitChildren, RenderObjectElement.insertRenderObjectChild, RenderObjectElement.moveRenderObjectChild, and RenderObjectElement.removeRenderObjectChild.

Implementation

@mustCallSuper
void mount(Element parent, dynamic newSlot) {
  assert(_debugLifecycleState == _ElementLifecycle.initial);
  assert(widget != null);
  assert(_parent == null);
  assert(parent == null || parent._debugLifecycleState == _ElementLifecycle.active);
  assert(slot == null);
  assert(depth == null);
  assert(!_active);
  _parent = parent;
  _slot = newSlot;
  _depth = _parent != null ? _parent.depth + 1 : 1;
  _active = true;
  if (parent != null) // Only assign ownership if the parent is non-null
    _owner = parent.owner;
  final Key key = widget.key;
  if (key is GlobalKey) {
    key._register(this);
  }
  _updateInheritance();
  assert(() {
    _debugLifecycleState = _ElementLifecycle.active;
    return true;
  }());
}