Skip to content

Repository files navigation

multiple_stream_builder

Flutter widgets to replace multiple nested StreamBuilder widgets

Installing

To add use this package in your Flutter project add this to your pubspec.yml

dependencies:
multiple_stream_builder: ^3.0.0

Usage example

var stream1 =Stream<int>.periodic(Duration(seconds:1), (x) => x);
var stream2 =Stream<int>.periodic(Duration(seconds:2), (x) => x);
var stream3 =Stream<int>.periodic(Duration(seconds:3), (x) => x);
// Instead of writing out nested StreamBuildersWidgetbuild(BuildContext context) {
returnStreamBuilder<int>(
stream: stream1,
initialData:0,
builder: (context, snapshot1) {
returnStreamBuilder<int>(
stream: stream2,
initialData:0,
builder: (context, snapshot2) {
returnStreamBuilder<int>(
stream: stream3,
initialData:0,
builder: (context, snapshot3) {
returnText(
'stream1: ${snapshot1.data} - stream2: ${snapshot2.data} - stream3: ${snapshot3.data}',
);
},
);
},
);
},
);
}
// Pass multiple streams into a single StreamBuilderWidgetbuild(BuildContext context) {
returnStreamBuilder3<int, int, int>(
streams:StreamTuple3(stream1, stream2, stream3),
initialData:InitialDataTuple3(0, 0, 0),
builder: (context, snapshots) {
returnText(
'stream1: ${snapshots.snapshot1.data} - stream2: ${snapshots.snapshot2.data} - stream3: ${snapshots.snapshot3.data}',
);
},
);
}

Releases

Packages

Used by

Contributors

Languages