rebuild method
void
rebuild()
Cause the component to update itself.
Called by the BuildOwner when rebuilding, by mount when the element is first built, and by update when the component has changed.
Implementation
void rebuild() {
assert(_lifecycleState != _ElementLifecycle.initial);
if (_lifecycleState != _ElementLifecycle.active || !_dirty) {
return;
}
assert(_lifecycleState == _ElementLifecycle.active);
assert(owner._debugStateLocked);
Element? debugPreviousBuildTarget;
assert(() {
if (!binding.isClient && owner.isFirstBuild) return true;
debugPreviousBuildTarget = owner._debugCurrentBuildTarget;
owner._debugCurrentBuildTarget = this;
return true;
}());
if (_observerElements != null && _observerElements!.isNotEmpty) {
for (var observer in _observerElements!) {
observer.willRebuildElement(this);
}
}
owner.performRebuildOn(this, () {
assert(() {
if (!binding.isClient && owner.isFirstBuild) return true;
assert(owner._debugCurrentBuildTarget == this);
owner._debugCurrentBuildTarget = debugPreviousBuildTarget;
return true;
}());
assert(!_dirty);
if (_dependencies != null && _dependencies!.isNotEmpty) {
for (var dependency in _dependencies!) {
dependency.didRebuildDependent(this);
}
}
if (_observerElements != null && _observerElements!.isNotEmpty) {
for (var observer in _observerElements!) {
observer.didRebuildElement(this);
}
}
});
}