mount method

  1. @override
void mount(
  1. Element? parent,
  2. Object? newSlot
)
override

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.

Implementations of this method should start with a call to the inherited method, as in super.mount(parent, newSlot).

Implementation

@override
void mount(Element? parent, Object? newSlot) {
  super.mount(parent, newSlot);
  final MultiChildRenderObjectWidget multiChildRenderObjectWidget = widget as MultiChildRenderObjectWidget;
  final List<Element> children = List<Element>.filled(multiChildRenderObjectWidget.children.length, _NullElement.instance);
  Element? previousChild;
  for (int i = 0; i < children.length; i += 1) {
    final Element newChild = inflateWidget(multiChildRenderObjectWidget.children[i], IndexedSlot<Element?>(i, previousChild));
    children[i] = newChild;
    previousChild = newChild;
  }
  _children = children;
}