inheritFromWidgetOfExactType ist veraltet. Verwenden Sie stattdessen abhängigeOnInheritedWidgetOfExactType

23

Seit der Veröffentlichung von Flutter 1.12 ist mein folgender Code:

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

warnt mit folgendem:

'inheritFromWidgetOfExactType' ist veraltet und sollte nicht verwendet werden. Verwenden Sie stattdessen dependOnInheritedWidgetOfExactType. Diese Funktion war nach Version 1.12.1 veraltet. Versuchen Sie, die Verwendung des veralteten Elements durch das Ersetzen zu ersetzen.

Aber wenn ich versuche, es zu ersetzen, funktioniert es nicht:

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

Weiß jemand, wie es geht? Vielen Dank!

Jose Jet
quelle

Antworten:

77

Die API hat sich leicht geändert.

Anstatt ein TypeArgument als Argument zu verwenden, ist die Methode jetzt generisch.

Vor:

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

Nach:

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

Beachten Sie, dass die Besetzung nicht mehr erforderlich ist

Rémi Rousselet
quelle
2
Vielen Dank! Ich fand es auch hier: github.com/flutter/flutter/blob/master/packages/flutter/test/…
Jose Jet