【发布时间】:2021-12-30 02:49:03
【问题描述】:
代码A来自官方样本project的末尾分支。
项目使用Hilt实现依赖注入。
在我看来,当我使用Hilt时,我不需要手动实例化ViewModel类,系统会在需要时自动实例化ViewModel。
但是作者似乎在代码A中使用代码viewModel: MainViewModel = viewModel()手动实例化ViewModel类,我使用Compose时如何使用Hilt自动实例化ViewMode类?
代码 A
@OptIn(ExperimentalMaterialApi::class)
@Composable
fun CraneHomeContent(
onExploreItemClicked: OnExploreItemClicked,
openDrawer: () -> Unit,
modifier: Modifier = Modifier,
viewModel: MainViewModel = viewModel(),
) {
...
}
@HiltViewModel
class MainViewModel @Inject constructor(
private val destinationsRepository: DestinationsRepository,
@DefaultDispatcher private val defaultDispatcher: CoroutineDispatcher
) : ViewModel() {
...
}
【问题讨论】:
标签: kotlin android-jetpack-compose dagger-hilt