今回はStatelessWidgetやStreamBuilderなど多くのWidgetで見かける「BuildContext」のイメージがわかない方のために簡潔に解説します。
目次
結論:Widgetの位置を伝える呪文
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) { //ここ
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Fluuter'),
),
),
);
}
}
結論から言うと、BuildContextはWidgetツリーにおけるWidgetの位置を伝える役割をします。逆に言えば、BuildContextがなければWidgetツリーのどこにWidgetを配置すればいいか分からないのです。
StreamBuilderでイメージするなら、BuildContextで新しいsnapshotができる度に生成されるWidgetの位置を伝えているわけです。
要するにWidgetでBuildContextが必要なら「context(なんでも良い)」と書いておけば、勝手にWidgetをいい感じの位置に配置してくれる呪文だと思っておけば大丈夫です。
以上です。