本文介绍了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的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!