gpt4 book ai didi

dart - Flutter:将Observable1.mergeWith([observable2])喂入后,Stream Builder无法正常工作

转载 作者:行者123 更新时间:2023-12-03 03:42:39 25 4
gpt4 key购买 nike

我想合并两个Observable或Streams用作Stream Builder的流输入,以从这些Streamed对象中构建出Listview。 。

我试过了

observable1.mergeWith([observable2])

这但lsit View 仅显示了可观察到的2。
如果我链接另一个像 observable1.mergeWith([observable2]).mergewith([observable3]) Or observable1.mergeWith([observable2,observable3])的可观察对象

这只告诉我可观察的3。

我尝试了concatwith,Combinelatest2,但没有任何效果。任何解决方案。

我也尝试过
Observable.combineLatest2(
Observable1, Observable2, (a, b) {
print("lengtsdfsdf"+a.length);
print("lengtsdfsdf"+b.length);
return List.from(a)..addAll(b);
}); // Here the Obsevables are of type Observable<List<obj>>

最佳答案

我认为这里的问题是,当Firebase的响应到达时,每个流都会发送一个事件,其中数据是条目的集合。

一个事件示例是StreamA的结果是['a', 'b', 'c']StreamB中的一个事件是['e', 'f', 'g']

您似乎对Observable.merge()的期望是

['a', 'b', 'c', 'e', 'f', 'g'],

但实际上它会发出2个事件。
第一
['a', 'b', 'c']

然后
['e', 'f', 'g'].
Flutter/StreamBuilder首先导致呈现第一个事件的数据,然后,当第二个事件到达窗口小部件时,它将使用第二个事件的数据进行重建。
Observable.scan运算符使您可以将多个事件中的数据合并为一个事件。

关于dart - Flutter:将Observable1.mergeWith([observable2])喂入后,Stream Builder无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51368676/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com