提问人:Ujjwal Kumar Maharana 提问时间:11/2/2023 更新时间:11/2/2023 访问量:48
即使 kotlin android 中的值没有更改,也会触发组合 stateFlows
Combining stateFlows is getting triggered even though value is not changed in kotlin android
问:
private val _searchQuery = MutableStateFlow("")
val searchQuery = _searchQuery.asStateFlow()
private val _activeSort = MutableStateFlow(HomeScreenSortOptions.MOST_RELEVANT)
val activeSort = _activeSort.asStateFlow()
@OptIn(FlowPreview::class, ExperimentalCoroutinesApi::class)
val homeScreenItemsPager =
combine(
searchQuery.debounce(SEARCH_QUERY_DEBOUNCE_TIME).distinctUntilChanged(),
activeSort
) { query, sort ->
query to sort
}.flatMapLatest {
Pager(
config = PagingConfig(
pageSize = HOME_SCREEN_PAGE_SIZE,
prefetchDistance = HOME_SCREEN_PAGE_SIZE
)
) {
HomeScreenItemSource(
query = searchQuery.value,
sort = activeSort.value.value,
homeRepository = homeRepository
)
}.flow.cachedIn(scope = viewModelScope)
}
在这里,我使用分页来显示列表。但是当我转到任何项目的详细信息页面并再次返回列表页面时,即使没有任何值更改并且整个列表再次刷新,stateFlow 也会重新触发。
我什至也松开了最后一个滚动的位置。
我该如何解决这个问题combine
答: 暂无答案
评论
cachedIn
flatMapLatest