inheritFromWidgetOfExactType is deprecated use dependOnInheritedWidgetOfExactType instead

Since the release of Flutter 1.12 my following code:

static MyInheritedWidget of(BuildContext context) {
  return context.inheritFromWidgetOfExactType(MyInheritedWidget) as MyInheritedWidget;
}

warns with the following:

'inheritFromWidgetOfExactType' is deprecated and shouldn't be used. Use dependOnInheritedWidgetOfExactType instead. This feature was deprecated after v1.12.1.. Try replacing the use of the deprecated member with the replacement.

But when I try to replace it, it does not work:

static MyInheritedWidget of(BuildContext context) {
  return context.dependOnInheritedWidgetOfExactType(MyInheritedWidget) as MyInheritedWidget;
}

Does someone know how to do it? Thanks!


The API changed slightly.

Now instead of taking a Type as argument, the method is generic.

Before:

final widget = context.inheritFromWidgetOfExactType(MyInheritedWidget) as MyInheritedWidget;

After:

final widget = context.dependOnInheritedWidgetOfExactType<MyInheritedWidget>();

Note that the cast is no longer necessary


InheritFromWidgetOfExactType method is deprecated , Use dependOnInheritedWidgetOfExactType method instead.

Example of a replacement:

Before : with InheritFromWidgetOfExactType

static Name of(BuildContext context) {
  return context.inheritFromWidgetOfExactType(Name);  //here
}

Now with dependOnInheritedWidgetOfExactType (Recommanded)

static Name of(BuildContext context) {
  return context.dependOnInheritedWidgetOfExactType<Name>();  //here
}

Now instead of taking a Type as argument, The method is generic .
Brief <...>() instead of (...)