buildChild method

RenderBox? buildChild(
  1. Object? slot
)

Implementation

RenderBox? buildChild(Object? slot) {
  final element = this.element;
  if (element == null) return null;

  element.owner!.buildScope(element, () {
    Widget newWidget;
    try {
      newWidget = itemBuilder(element, slot);
    } catch (e) {
      return;
    }

    final oldElement = elements[slot];
    final oldWidget = widgets[slot];
    if (oldElement == null) {
      final newElement = element.inflateWidget(newWidget, slot);
      elements[slot] = newElement;
      widgets[slot] = newWidget;
    } else if (oldWidget != null && Widget.canUpdate(oldWidget, newWidget)) {
      oldElement.update(newWidget);
      widgets[slot] = newWidget;
    } else {
      element.deactivateChild(oldElement);
      final newElement = element.inflateWidget(newWidget, slot);
      elements[slot] = newElement;
      widgets[slot] = newWidget;
    }
  });
  return elements[slot]?.renderObject as RenderBox?;
}