Jetpack Compose中向导式页面的共享UI状态管理方案咨询
关于Jetpack Compose向导式页面共享状态的疑问
根据Jetpack Compose指南,每个页面都应拥有独立的UI状态及对应的ViewModel

假设我有一套向导式页面,用户在Screen A、B、C中输入数据,最后进入Screen D查看汇总信息。所有数据均为本地输入和管理,除Screen D外其他页面无需数据层。
各页面的ViewModel结构如下:
data class Screen{X}UiState( myString: String? ) class Screen{X}ViewModel: ViewModel() { private val _uiState = MutableStateFlow(Screen{X}UiState()) val uiState = _uiState.toStateFlow() fun mySetterMethod(myValue: String?) { _uiState.update { itCopy(myString = myValue) } } }
当进入Screen D时,我需要展示Screen A、B、C中输入的所有数据。按技术逻辑,我认为应将共享状态提升至NavHost(最低公共父组件),这意味着除了在mySetterMethod中更新当前页面状态外,还需将更新后的状态传递给NavHost。请问我的理解是否正确?
NavHost( startDestination = "ScreenA" ) { val screenDUiState = MutableStateFlow(ScreenDUiState()) composable(route = "ScreenA") { ScreenA() } composable(route = "ScreenB") { ScreenB() } composable(route = "ScreenC") { ScreenC() } composable(route = "ScreenD") { ScreenD(screenDUiState) } }
内容的提问来源于stack exchange,提问作者SilleBille
相关产品推荐
相关产品推荐

