【发布时间】:2021-10-29 17:57:26
【问题描述】:
我们知道下面创建实例的方式非常好,可以享受生命周期管理。并且在 ViewModel 中创建的实例是一样的。
但是如果要在一个页面上创建两个实例,如何创建呢?
fun Following(viewModel: FollowViewModel = viewModel()) {
}
【问题讨论】:
标签: kotlin android-jetpack-compose android-viewmodel
我们知道下面创建实例的方式非常好,可以享受生命周期管理。并且在 ViewModel 中创建的实例是一样的。
但是如果要在一个页面上创建两个实例,如何创建呢?
fun Following(viewModel: FollowViewModel = viewModel()) {
}
【问题讨论】:
标签: kotlin android-jetpack-compose android-viewmodel
您可以使用key 参数来识别ViewModel:
val firstViewModel = viewModel<FollowViewModel>(key = "first")
val secondViewModel = viewModel<FollowViewModel>(key = "second")
附言如果您使用 Hilt,hiltViewModel 尚不支持密钥,您可以在此 feature request 上加注星标以获取更新,并在 this answer 中查看 hack。
【讨论】:
factory 参数,您可以使用所需的键作为参数来创建视图模型对象。