Android compose Navigation 和 ViewModel 构造函数调用

Posted

技术标签:

【中文标题】Android compose Navigation 和 ViewModel 构造函数调用【英文标题】:Android compose Navigation and ViewModel constructor calls 【发布时间】:2022-01-20 13:13:15 【问题描述】:

目前我正在使用带有导航和视图模型的组合。 我的 NavHost 的代码如下

composable(MyRoute.name + "/param")  backStackEntry ->
                    val param = backStackEntry.arguments?.getString("id") ?: ""
                    val viewModel = hiltViewModel<MyViewModel>()
                    MyComposable(
                        viewModel = viewModel
                    )
                

我面临的问题是 viewModel.init 被调用了无数次(我猜它是重组),但 viewModel 应该只有一个实例超过生命周期的可组合物。

【问题讨论】:

【参考方案1】:

使用LaunchedEffect 运行您的网络调用。

参考this。

【讨论】:

与副作用无关,viewmodel构造函数被无限调用

以上是关于Android compose Navigation 和 ViewModel 构造函数调用的主要内容,如果未能解决你的问题,请参考以下文章

android compose混合开发 fragment中使用compose

Jetpack Compose 和 Compose Navigation 如何处理 Android 活动?

Android compose crane

Android compose crane

Android笔记--Compose基础

Android Kotlin Jetpack Compose 使用