在 Jetpack Compose 中创建多个视图模型实例

Create multiple view model instances in Jetpack Compose

我们知道下面创建实例的方式非常好,可以享受生命周期管理。并且在 ViewModel 中创建的实例是相同的。

但是如果要在一个页面上创建两个实例,如何创建呢?

fun Following(viewModel: FollowViewModel = viewModel()) {

}

您可以使用 key 参数来识别 ViewModel:

val firstViewModel = viewModel<FollowViewModel>(key = "first")
val secondViewModel = viewModel<FollowViewModel>(key = "second")

p.s。如果您使用的是 Hilt,hiltViewModel 还不支持按键,您可以暂时给这个 feature request for updates, and check out hack in 加注星标。