微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决将 pagingData 3 流与另一个流相结合

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

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

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

java.lang.IllegalStateException:尝试从 pageEventFlow,这是一个非法操作。你忘记打电话了吗 Flow>.cachedIn(coroutinescope)?

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

解决方法

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。