findAncestorStateOfType<T extends State<StatefulWidget>> method

  1. @override
T? findAncestorStateOfType<T extends State<StatefulWidget>>()
override

Returns the State object of the nearest ancestor StatefulWidget widget that is an instance of the given type T.

Implementation

@override
T? findAncestorStateOfType<T extends State<StatefulWidget>>() {
  RenderElement? ancestor = _parent;

  while (ancestor != null) {
    if (ancestor is StatefulRenderElement && ancestor.state is T) {
      break;
    }

    ancestor = ancestor._parent;
  }

  var statefulAncestor = ancestor as StatefulRenderElement?;

  return statefulAncestor?.state as T?;
}