我正在尝试使用状态流和分页 3 来实现 android MVI 架构,但是当我有一个包含分页数据的视图状态时,我感到很困惑。
\n问题是我将视图模型中的视图状态公开为状态流对象,但现在在该视图状态内我有另一个来自分页库的流对象。
\n状态流中可以有一个流吗?如果它\xe2\x80\x99s 不是我应该做什么?
\n这是我的代码,以供更多说明。
\n任务库
\noverride fun list(\npageNumber: Int,\npageSize: Int,\ngroupId: Long?,\nquery: String\n): Flow<PagingData<Task>> {\nreturn Pager(\n config = PagingConfig(\n pageSize = Consts.PageSize,\n maxSize = 200,\n enablePlaceholders = false\n ),\n remoteMediator = TaskRemoteMediator(query, groupId, db, taskApi),\n pagingSourceFactory = {\n TaskDataSource(taskApi, groupId, query)\n }\n).flow\n}\nRun Code Online (Sandbox Code Playgroud)\n任务视图模型
\nviewModelScope.launch {\ntry {\n _taskListViewState.emit(TaskListViewState.Loading)\n val tasks = taskRepo.list(1, Consts.PageSize, intent.groupId, "")\n _taskListViewState.emit(TaskListViewState.Data(tasks))\n} catch (e: Exception) {\n _taskListViewState.emit(TaskListViewState.Error(R.string.unknown_error))\n}\n}\nRun Code Online (Sandbox Code Playgroud)\n任务列表视图状态
\nsealed class TaskListViewState {\nobject Idle …Run Code Online (Sandbox Code Playgroud)