android 中的共享视图模型在使用 Hilt 进行依赖项注入时撰写项目?
Shared view model in android compose project while using Hilt for dependency injection?
有人知道如何在不同的可组合项之间保留共享视图模型对象吗?
我正在使用 hilt 并在可组合中使用 hilt 注入 viewmodel 实例。
基本上有 3 个屏幕共享相同的数据和更改我想共享它,我正在考虑通过共享视图模型共享这些数据。
myViewModel: MyViewModel = hiltViewModel()
那么如何将这个 MyViewModel 用作共享视图模型?
您只需要像这样在导航返回堆栈条目中找到视图模型并将其传递到下一个可组合屏幕:
val backStackEntry = remember {
navHostController.getBackStackEntry("first_screen_route_where_viewmodel_was_firstly_initialized")
}
val viewModel: MyViewModel = hiltViewModel(backStackEntry)
现在您已经获得了视图模型,它与您在之前屏幕中所处的状态完全相同。
现在您可以将其用作共享视图模型。
感谢@Pylyp 的指导..
有人知道如何在不同的可组合项之间保留共享视图模型对象吗? 我正在使用 hilt 并在可组合中使用 hilt 注入 viewmodel 实例。 基本上有 3 个屏幕共享相同的数据和更改我想共享它,我正在考虑通过共享视图模型共享这些数据。
myViewModel: MyViewModel = hiltViewModel()
那么如何将这个 MyViewModel 用作共享视图模型?
您只需要像这样在导航返回堆栈条目中找到视图模型并将其传递到下一个可组合屏幕:
val backStackEntry = remember {
navHostController.getBackStackEntry("first_screen_route_where_viewmodel_was_firstly_initialized")
}
val viewModel: MyViewModel = hiltViewModel(backStackEntry)
现在您已经获得了视图模型,它与您在之前屏幕中所处的状态完全相同。 现在您可以将其用作共享视图模型。 感谢@Pylyp 的指导..