class Container {
Container({ @required this.foo });
final Foo foo;
}
class Provider extends InheritedWidget {
static Container of(BuildContext context) =>
context.inheritFromWidgetOfExactType(Provider).container;
Provider({Key key, Widget child, this.container}):
super(key: key, child: child);
final Container container;
@override bool updateShouldNotify(Provider old) =>
container != old.container;
}
スペース不足のため色々割愛
Contextを返す
Theme の例であれば ThemeData を返す
Dependency Injectionの例であれば注入されたコンテナを返す
ほとんどのFlutter標準APIではこの形になっている