【发布时间】:2021-07-20 00:15:06
【问题描述】:
我在从可组合的片段中获取活动视图模型时遇到问题
private val birthdayViewModel: BirthdayViewModel by activityViewModels()
当我使用 viewModels() 时没有问题
private val birthdayViewModel: BirthdayViewModel by viewModels()
以可组合方式获取视图模型
val birthdayViewModel: BirthdayViewModel = viewModel()
val formItem by birthdayViewModel.birthdayFormItem.observeAsState()
问题是使用activityViewModels时表单项错误为null,但使用viewModels时却没有
当我在调试模式下运行以检查 formItem 的值时,我收到以下错误消息: "找不到 com.form.FormSpec$FormItem 类型的局部变量 'formItem'"
这可能是 gradle 版本控制问题吗?
请帮忙:)
【问题讨论】:
-
您在项目中使用
Dagger Hilt吗?有一种方法可以使用Dagger HiltViewModel提供可组合的ViewModel? -
目前没有使用 Hilt 但我会试一试
-
你有在片段内使用
activityViewModels的依赖吗?你能在没有任何compile time警告/错误的情况下使用activityViewModels吗? -
是的,没有问题,我可以运行代码并将我在使用activityViewModels 时收到的错误放在我的问题中
标签: android kotlin android-jetpack-compose android-viewmodel