update method

  1. @override
void update(
  1. Widget newWidget
)
override

Implementation

@override
void update(Widget newWidget) {
  super.update(newWidget);
  final newWidgetList = (newWidget as MultiChildRenderObjectWidget).children;
  final container =
      renderObject as ContainerRenderObjectMixin<RenderObject, ParentData>;

  final newChildren = <Element>[];
  final oldChildren = List<Element?>.from(_children);

  container.clear();

  for (int i = 0; i < newWidgetList.length; i++) {
    final newWidgetChild = newWidgetList[i];
    final child = _findOrCreateChild(newWidgetChild, oldChildren);
    newChildren.add(child);

    if (child.renderObject != null) {
      container.setupParentData(child.renderObject!);
      container.add(child.renderObject!);
    }
  }

  _unmountOldChildren(oldChildren);
  _children = newChildren;
}