例如,我试图一次获取为多个流发出的数据,但是有2个或更多的这些流发出相同类型的数据,比方说一个字符串.
我的问题是,是否可以使用MultiProvider
并使用同一类型的多个StreamProvider
(或任何提供程序,但我对此 case 感兴趣),同时仍然能够访问每个提供程序发出的数据?
解决这个问题的一种方法是在使用普通数据类型时使用StreamBuilder
,但我真的很喜欢MultiProvider
提供的更干净的代码.
例子:
class MyScreen extends StatelessWidget {
Widget build(BuildContext context) {
return MultiProvider(
providers: [
StreamProvider<String>(stream: Observable.just("stream1")),
StreamProvider<String>(stream: Observable.just("stream2")),
StreamProvider<String>(stream: Observable.just("stream3"))
],
child: Builder(
builder: (BuildContext context) {
AsyncSnapshot<String> snapshot =
Provider.of<AsyncSnapshot<String>>(context);
String data = snapshot.data;
return Text(data);
},
),
);
}
}