我有一个 pagingData 流对象,我想将它与不同的融合位置流结合起来,以便它与 pagingdata 列表中的每个项目进行相应的处理。
val point : Flow<Point>
val pagingDate : Flow<PagingData>
我尝试使用 combine 和 combineTransform 但它似乎不起作用,因为当要点更新时应用程序崩溃并显示与 pagingData 3 相关的错误消息无法发出两次
java.lang.IllegalStateException: Attempt to collect twice from pageEventFlow, which is an illegal operation. Did you forget to call Flow<PagingData<*>>.cachedIn(coroutineScope)?
这里我有哪些选项可以使用流数据转换分页数据项?
最佳答案
只是在这里跟进,因为其他人可能会遇到这个问题,尽管 OP 还没有更新他们的答案。
这通常是由于使用了 .combine
或类似的运算符,它们会重复 Flow 中最新发出的值,从而导致同一实例被使用两次。为防止这种情况,您可以在 .combine()
之前调用 .cachedIn(scope)
,以便多播 Flow,为您提供预加载缓存数据的新 PagingData 实例。
关于android - 将 pagingData 3 流与另一个流相结合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66262502/