Android Jetpack Compose 从 Composable 中的 Fragment 获取 Activity 查看模型
Android Jetpack Compose get Activity View Model from Fragment inside Composable
我在从可组合项中的片段获取 activity 视图模型时遇到问题
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(
fragmentViewModel: FragmentViewModel = viewModel(),
activityViewModel: ActivityViewModel = viewModel()
)
我在从可组合项中的片段获取 activity 视图模型时遇到问题
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(
fragmentViewModel: FragmentViewModel = viewModel(),
activityViewModel: ActivityViewModel = viewModel()
)