📖
[Flutter]StreamBuilder 非同期処理で使うwidget
StreamBuilder
非同期処理に優れている
Stream と Builderを渡すことで、ストリームが新しいデータイベントを出力するたびにその子要素を再作成し、最新イベントを連携させることができる
StreamBuilder(
stream: _myStream,
initialData: 42,
builder: (context, snapshot){
return MyWidget(snapshot.data);
}
);
1)
initialData: 初期データを与えることで、最初のイベントの待機中にウィジェットに表示させることができる
snapshot : アプリの当該部分の外見を宣言する
StreamBuilder(
stream: _myStream,
builder: (context, snapshot){
if(!snapshot.hasData){
return CirclarProgressIndicator();
}
return MyWidget(snapshot.data);
},
);
2)1)のように初期データを入れない場合、snapshotにデータが存在するか確認する必要がある
詳しく確認する場合は、snapshot.connectionState にて確認する
また、エラーキャッチも忘れないように(snapshot.hasError が便利!)
Discussion