我有以下代码:
val history: Flow<PagingData<Any>> = Pager(PagingConfig(pageSize = 10)) {
PaginationBaseDataSource(apiService)
}.flow
.cachedIn(viewModelScope)
当前正在显示没有任何附加参数的项目列表。这工作正常...但现在我希望根据用户可以在前端更改的某些参数来查询此列表,假设我希望添加参数 3 作为查询。
val history: Flow<PagingData<Any>> = Pager(PagingConfig(pageSize = 10)) {
PaginationBaseDataSource(apiService, 3)
}.flow
.cachedIn(viewModelScope)
问题是...我怎样才能动态设置这个查询参数?假设用户使用 6,而不是 3,然后使用 9。我怎样才能实现这一点?
非常感谢
只要您的参数之一发生变化,您就需要发出新的 PagingData。实现此目的的流程式方法可能如下所示:
val queryFlow = MutableStateFlow(value = 3)
val pagingDataFlow = queryFlow.flatMapLatest { query ->
Pager(...) { MyPagingSource(query) }.flow.cachedIn(viewModelScope)
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)