inheritFromWidgetOfExactType est obsolète, utilisez dependOnInheritedWidgetOfExactType à la place

23

Depuis la sortie de Flutter 1.12, mon code suivant:

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

met en garde avec ce qui suit:

'inheritFromWidgetOfExactType' est obsolète et ne doit pas être utilisé. Utilisez plutôt dependOnInheritedWidgetOfExactType. Cette fonctionnalité a été déconseillée après la v1.12.1 .. Essayez de remplacer l'utilisation du membre déconseillé par le remplacement.

Mais quand j'essaye de le remplacer, ça ne marche pas:

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

Est-ce que quelqu'un sait comment le faire? Merci!

Jose Jet
la source

Réponses:

77

L'API a légèrement changé.

Maintenant, au lieu de prendre un Typeargument as, la méthode est générique.

Avant:

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

Après:

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

Notez que le casting n'est plus nécessaire

Rémi Rousselet
la source
2
Je vous remercie! Je l'ai aussi trouvé ici: github.com/flutter/flutter/blob/master/packages/flutter/test/…
Jose Jet