I am trying to use a StreamBuilder to read some data from a Stream, but snapshot.data is only returning the last item from the Stream. In this case, I am only getting 'f'. I want to get 'a', 'b', 'c', 'd', 'e', 'f'. What am I doing wrong?
class ProgressWidget extends StatefulWidget {
//ProgressWidget({this.stream}) : super();
//final Stream<String> stream;
@override
_ProgressWidgetState createState() => _ProgressWidgetState();
}
class _ProgressWidgetState extends State<ProgressWidget> {
int _progressCount = 0;
@override
void initState() {
super.initState();
}
@override
Widget build(BuildContext context) {
return StreamBuilder(
stream: Stream.fromIterable(['a', 'b', 'c', 'd', 'e', 'f']), // test stream
builder: (BuildContext context, AsyncSnapshot<String> snapshot) {
_progressCount++;
if (snapshot.hasData) {
print(snapshot.data);
}
return snapshot.hasData
? new Text('Progress $_progressCount ' + snapshot.data)
: new Text('Loading ... ');
});
}
}