【发布时间】:2021-06-25 03:59:28
【问题描述】:
我正在一个 Android 应用程序中使用 Jetpack Compose,但我的 uiState (LiveData) 在每次重组时都设置为其初始值,因为我已经像初始化它一样
val authUiState: AuthUIState by authenticationViewModel.uiState.observeAsState(AuthUIState.Loading)
在设置为正确值之前,它在每次重组时都设置为加载。 当我尝试Remember这个值时,我发现我们不能在remember块中使用observeAsState,最后把它改成了
val authUiState = remember{ mutableStateOf(authenticationViewModel.uiState.value) }.value
这行得通,但我不太确定,这是否是解决这个问题的常用和好方法。 你怎么看?我应该采取不同的做法吗?您需要更多信息吗?
【问题讨论】:
-
你可以初始化
uiState而不使用我猜的默认值:-val authUiState: AuthUIState by authenticationViewModel.uiState.observeAsState() -
@jpm,你刚刚删除协程问题的原因是什么?我认为这是一个很好的问题,对其他人会有所帮助,我花时间明确地回答了它。
-
@Tenfour04,对不起。你的回答并没有真正解决我的问题,我注意到这个问题并不是很清楚,即使对我来说也是如此。所以我会使用我目前的解决方案,直到我更清楚我真正需要什么,或者可以自己解决,或者回到这里。
标签: android android-jetpack-compose