本文介绍了Android Jetpack Compose Get Activity View Model From Fragment in Composable的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

从可组合的

中的片段获取活动视图模型时遇到问题

private val birthdayViewModel: BirthdayViewModel by activityViewModels()

当我使用viewModels()时,没有问题

private val birthdayViewModel: BirthdayViewModel by viewModels()

以类似于可组合的方式获取视图模型

val birthdayViewModel: BirthdayViewModel = viewModel()
val formItem by birthdayViewModel.birthdayFormItem.observeAsState()

问题是,在使用activityViewModels时,表单项错误为空,但在使用viewModels时不会。

当我在调试模式下运行以检查formItem值时,我收到以下错误消息:找不到com.form.FormSpec$FormItem类型的局部变量‘formItem’

这会不会是Gradle版本问题?

请帮助:)

推荐答案

private val activityViewModel: ActivityViewModel by activityViewModels()
private val fragmentViewModel: FragmentViewModel by viewModels()

Composable(fragmentViewModel, activityViewModel)

这个问题与望远镜有关。我没有直接将视图模型传递到我的Composable中,而是在Composable构造函数中这样做,这并不会导致我的两个视图模型都具有片段作用域。

Composable(
   fragmentViewModel: FragmentViewModel = viewModel(), 
   activityViewModel: ActivityViewModel = viewModel()
)

这篇关于Android Jetpack Compose Get Activity View Model From Fragment in Composable的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-10 14:44