herdarFromWidgetOfExactType está obsoleto, use dependOnInheritedWidgetOfExactType

23

Desde o lançamento do Flutter 1.12, meu código a seguir:

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

avisa com o seguinte:

'herditFromWidgetOfExactType' foi descontinuado e não deve ser usado. Use dependOnInheritedWidgetOfExactType. Este recurso foi descontinuado após a v1.12.1. Tente substituir o uso do membro descontinuado pela substituição.

Mas quando tento substituí-lo, ele não funciona:

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

Alguém sabe como fazer isso? Obrigado!

Jose Jet
fonte

Respostas:

77

A API mudou um pouco.

Agora, em vez de usar um Typeargumento as, o método é genérico.

Antes:

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

Depois de:

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

Observe que o elenco não é mais necessário

Rémi Rousselet
fonte
2
Obrigado! Encontrei-o também aqui: github.com/flutter/flutter/blob/master/packages/flutter/test/…
Jose Jet