Metoda inheritFromWidgetOfExactType jest przestarzała, zamiast niej należy użyć dependOnInheritedWidgetOfExactType

23

Od wydania Flutter 1.12 mój następujący kod:

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

ostrzega przed:

„inheritFromWidgetOfExactType” jest przestarzałe i nie należy go używać. Zamiast tego należy użyć dependOnInheritedWidgetOfExactType. Ta funkcja została uznana za przestarzałą po wersji 1.1.12.1. Spróbuj zastąpić przestarzały element członkowski wymianą.

Ale kiedy próbuję go wymienić, to nie działa:

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

Czy ktoś wie jak to zrobić? Dzięki!

Jose Jet
źródło

Odpowiedzi:

77

Interfejs API zmienił się nieznacznie.

Teraz zamiast brać Typejako argument, metoda jest ogólna.

Przed:

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

Po:

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

Pamiętaj, że obsada nie jest już konieczna

Rémi Rousselet
źródło
2
Dziękuję Ci! Znalazłem to też tutaj: github.com/flutter/flutter/blob/master/packages/flutter/test/…
Jose Jet