【发布时间】:2020-05-11 20:35:05
【问题描述】:
我是 Dart Streams 的新手,很难弄清楚这一点。
基本上,我有一个用于文件下载的流,然后是另一个用于文件处理的流。文件下载流只能在文件处理流之后初始化,因为它依赖于下载的文件。
我需要显示一个进度小部件,从 0 到 100%,然后再从 0 到 100%。
我尝试使用 rxDart concatWith 来合并流,但它不起作用。 ConnectionState.done 在第一个流上被调用,它不听另一个。我也不确定这是否是正确的方法。
如果我尝试在构建器中设置新流,我会收到此错误:
在构建期间调用 setState() 或 markNeedsBuild()。
builder: (context, snapshot) {
print(snapshot.connectionState);
if (snapshot.connectionState == ConnectionState.done) {
setState(() {
stream =
Stream.periodic(Duration(seconds: 1), (i) => _source2[i]).take(_source2.length); // New Stream
});
}
这样做的好方法是什么?
【问题讨论】: