update method

  1. @override
void update(
  1. Widget newWidget
)
override

Updates this element to use a new Widget configuration.

Implementation

@override
void update(Widget newWidget) {
  final oldWidget = widget as InheritedWidget;
  super.update(newWidget);
  final updatedWidget = newWidget as InheritedWidget;
  final shouldNotify = updatedWidget.updateShouldNotify(oldWidget);
  final childWasIdentical =
      childElement != null &&
      identical(childElement!.widget, updatedWidget.child);
  rebuild();
  if (shouldNotify) {
    for (final dependent in _dependents.toList()) {
      if (!dependent.mounted) {
        _dependents.remove(dependent);
        continue;
      }
      if (dependent == childElement && !childWasIdentical) {
        continue;
      }
      if (dependent is StatefulElement) {
        dependent.state.didChangeDependencies();
      }
      dependent.markNeedsBuild();
    }
  }
}