繁体   English   中英

将 pagingData 3 流与另一个流相结合

[英]combining pagingData 3 flow with another flow

我有一个 pagingData 流 object ,我想将它与不同的融合位置流结合起来,以便对 pagingdata 列表的每个项目进行相应的处理。

val point : Flow<Point> 
val pagingDate : Flow<PagingData>

我尝试使用 combine 和 combineTransform 但它似乎不起作用,因为当更新应用程序崩溃并显示与 pagingData 3 相关的错误消息时无法发出两次

java.lang.IllegalStateException:尝试从pageEventFlow中收集两次,这是非法操作。 您是否忘记调用 Flow<PagingData<*>>.cachedIn(coroutineScope)?

我有哪些选择可以使用流数据转换分页数据项?

只是在这里跟进,因为其他人可能会遇到这个问题,尽管 OP 还没有更新他们的答案。

这通常是由于使用了.combine或类似的运算符,这些运算符会重复来自 Flow 的最新发出的值,从而导致相同的实例被使用两次。 为了防止这种情况,您可以在 .combine() 之前调用.cachedIn(scope) .combine()多播流,从而为您提供一个新的 PagingData 实例,其中预加载了缓存数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM