【问题标题】:Create multiple view model instances in Jetpack Compose在 Jetpack Compose 中创建多个视图模型实例
【发布时间】:2021-10-29 17:57:26
【问题描述】:

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

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

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

}

【问题讨论】:

    标签: kotlin android-jetpack-compose android-viewmodel


    【解决方案1】:

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

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

    附言如果您使用 Hilt,hiltViewModel 尚不支持密钥,您可以在此 feature request 上加注星标以获取更新,并在 this answer 中查看 hack。

    【讨论】:

    • 嗨!杜霍夫!我总是能见到你,再次解决了我的问题,非常感谢。如果我想在 ViewModel 中获取 key,有没有办法?
    • @weifans 不客气=) 我不这么认为。但是使用factory 参数,您可以使用所需的键作为参数来创建视图模型对象。
    猜你喜欢
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 2023-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-01
    相关资源
    最近更新 更多