performRebuild method

  1. @override
void performRebuild()
override

Cause the component to update itself.

Called by BuildOwner after the appropriate checks have been made.

Implementation

@override
void performRebuild() {
  assert(_debugSetAllowIgnoredCallsToMarkNeedsBuild(true));
  List<Component>? built;
  try {
    assert(() {
      _debugDoingBuild = true;
      return true;
    }());
    built = build().toList();
    assert(() {
      _debugDoingBuild = false;
      return true;
    }());
  } catch (e, st) {
    _debugDoingBuild = false;
    // TODO: implement actual error component
    built = [
      DomComponent(
        tag: 'div',
        child: Text("Error on building component: $e"),
      ),
    ];
    print('Error: $e $st');
  } finally {
    _dirty = false;
    assert(_debugSetAllowIgnoredCallsToMarkNeedsBuild(false));
  }

  _children = updateChildren(_children ?? [], built, forgottenChildren: _forgottenChildren);
  _forgottenChildren.clear();
}