颤动:将两个Streams流式传输到一个屏幕上?

颤动:将两个Streams流式传输到一个屏幕上?,第1张

概述我从两个不同的api中获取了两个流. Stream<Month> get monthOutStream => monthOutController.stream;Stream<MySchedule> get resultOutStream => resultController.stream; 我在应用程序的两个不同状态下获取这些数据,结果是在用户的某些事件之后的开始和几个月. MySchedu 我从两个不同的API中获取了两个流.

Stream<Month> get monthOutStream => monthOutController.stream;Stream<MySchedule> get resultOutStream => resultController.stream;

我在应用程序的两个不同状态下获取这些数据,结果是在用户的某些事件之后的开始和几个月.

MyScheduleBloc(){  initialData();}Future initialData() async {  MySchedule mySchedule = await myScheduleviewmodel.importMySchedule(Now.ID);  resultController.add(mySchedule);}

我的屏幕有一个streambuilder

Widget build(BuildContext context) {final webCalenderBloc = WebCalenderBloc();return StreamBuilder(  stream: webCalenderBloc.resultOutStream,builder: (BuildContext context,snapdata){    if(!snapdata.hasData){      return Center(        child: CircularProgressIndicator(),);    }    return body(snapdata.data);   },);}

由于主要的小部件构建方法将带有resultoutstream的StreamBuilder小部件作为流.我在哪里获取另一个流monthoutStream.
我可以在流中获取流吗?在处理两个流时我是否缺少任何内容.我不想从monthoutstream构建任何小部件但是想要检查其中的数据.

解决方法 如果需要,您可以嵌套StreamBuilder.没有什么能阻止您执行以下 *** 作:

StreamBuilder(  stream: stream1,builder: (context,snapshot1) {    return StreamBuilder(      stream: stream2,snapshot2) {        // do some stuff with both streams here      },);  },)

如果这对你有意义,另一个解决方案是:Streams被设计为可合并/转换.您可以创建第三个流,它是两个后续流的合并.

理想情况下,对于复杂的流 *** 作,您需要使用@L_502_0@,因为它提供了一些有用的变换器.

使用rxdart,两个Observable(它是Stream的子类)的融合如下:

Observable<bool> stream1;Observable<String> stream2;final fusion = stream1.withLatestFrom(stream2,(foo,bar) {  return MyClass(foo: foo,bar: bar);});
总结

以上是内存溢出为你收集整理的颤动:将两个Streams流式传输到一个屏幕上?全部内容,希望文章能够帮你解决颤动:将两个Streams流式传输到一个屏幕上?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1001865.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存