【发布时间】:2021-08-08 15:32:47
【问题描述】:
在我看到的所有将视图模型与 Jetpack Compose 结合使用的示例中,通常将状态存储在视图模型中作为 MutableStateFlow,然后在 compose 函数中应用 collectAsState 以获得 Compose 状态。
我的问题:为什么不直接将状态存储在视图模型中,而不是一些流?例如
class MyViewModel: ViewModel() {
val showDialog = mutableStateOf(false)
}
@Compose
fun MyScreen(viewModel: MyViewModel) {
Button(onClick = { viewModel.showDialog = true })
if (viewModel.showDialog) {
AlertDialog(...)
}
}
上面的代码似乎按预期运行。那么这是一个有效的解决方案吗?
【问题讨论】:
-
你可以随心所欲,这只是最佳实践的问题。检查docs