notifyDependent method

  1. @override
void notifyDependent(
  1. covariant InheritedWidget oldWidget,
  2. Element dependent
)
override

Called by notifyClients for each dependent.

Calls dependent.didChangeDependencies() by default.

Subclasses can override this method to selectively call didChangeDependencies based on the value of getDependencies.

See also:

Implementation

@override
void notifyDependent(InheritedWidget oldWidget, Element dependent) {
  // select can never be used inside `didChangeDependencies`, so if the
  // dependent is already marked as needed build, there is no point
  // in executing the selectors.
  if (dependent.dirty) return;

  final dependency = getDependencies(dependent);

  if (dependency is! ReactterDependency ||
      _hasInstanceOrStatesDirty(dependency)) {
    dependent.didChangeDependencies();
    _removeDependencies(dependent);
  }
}