notifyClients method

  1. @override
void notifyClients(
  1. covariant InheritedWidget oldWidget
)
override

Notifies all dependent elements that this inherited widget has changed, by calling Element.didChangeDependencies.

This method must only be called during the build phase. Usually this method is called automatically when an inherited widget is rebuilt, e.g. as a result of calling State.setState above the inherited widget.

See also:

Implementation

@override
void notifyClients(InheritedWidget oldWidget) {
  assert(_debugCheckOwnerBuildTargetExists('notifyClients'));
  for (final Element dependent in _dependents.keys) {
    assert(() {
      // check that it really is our descendant
      Element? ancestor = dependent._parent;
      while (ancestor != this && ancestor != null) {
        ancestor = ancestor._parent;
      }
      return ancestor == this;
    }());
    // check that it really depends on us
    assert(dependent._dependencies!.contains(this));
    notifyDependent(oldWidget, dependent);
  }
}