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

gao*_*way 4 kotlin android-viewmodel android-jetpack-compose

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

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

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

}
Run Code Online (Sandbox Code Playgroud)

Phi*_*hov 13

您可以使用key用于识别的参数ViewModel

val firstViewModel = viewModel<FollowViewModel>(key = "first")
val secondViewModel = viewModel<FollowViewModel>(key = "second")
Run Code Online (Sandbox Code Playgroud)

ps 如果您使用的是 Hilt,hiltViewModel尚不支持密钥,您可以为此功能请求加注星标以获取更新,并暂时查看此答案中的 hack。