【发布时间】:2021-11-11 09:13:47
【问题描述】:
我尝试使用 hilt 将 viewModel 注入到我的基本活动中
abstract class BaseActivity<VB: ViewBinding, VM: BaseViewModel>(val bindingFactory(LayoutInflater) -> VB) : AppCompatActivity() {
private val viewModel: VM by viewModels<>()
lateinit var binding: VB
}
但是在 viewModels() 函数上出现错误 "属性委托必须有一个 'getValue(BaseActivity , KProperty*>)' 方法。以下函数都不适合。"
如何使用 hilt 在基类中注入 viewModel,或者是否可以使用带 hilt 的基类?
【问题讨论】:
-
为什么不使用 Activity 中的绑定和视图模型,就像没有 Hilt 一样? Hilt 的主要推动力之一是使用 Android 的内置实例创建作为注入到视图模型之类的东西的接缝
-
由于我有多个活动和片段,我打算使用基类来减少冗余,之前使用这种架构与匕首。这是我第一次使用刀柄构建,所以我不知道这些限制。
-
我问的是同样的问题,但使用的是 Dagger android。有人知道吗?
标签: kotlin viewmodel dagger inject dagger-hilt