我的代码中有一个奇怪的错误,这可能是 koin 的限制,但我找不到任何相关信息,所以我在这里询问。
这是我的视图模型:
class LoginViewModel:
BaseViewModel<LoginViewModelContract.State, LoginViewModelContract.Event>() {
private val authProvider: AuthProvider by inject()
...
}
BaseViewModel是一个实现androidx.lifecycle.ViewModel的简单类。
这里的问题是 koin 无法导入inject()。有人知道为什么吗?我的 koin 设置是正确的,我可以在所有其他类中注入实例,但不能在这个视图模型中注入实例。
Intellij 显示以下错误消息:
未解析的引用。由于接收器类型不匹配,以下候选均不适用:public inline fun ComponentCallbacks.inject(qualifier: Qualifier? = ..., mode: LazyThreadSafetyMode = ..., noinline parameters: ParametersDefinition? /* = (() → ParametersHolder)? */ = ...): Lazy<TypeVariable(T)> 定义在 org.koin.android.ext.android 中
LoginViewModel 需要实现 KoinComponent 接口