对 Koin 的 sharedViewModel() 的未解决引用

Boo*_*hes 1 android dependency-injection kotlin koin

我正在尝试懒惰地注入sharedViewModel()我的活动。由于某种原因,我的 IDE 无法解析引用。它可以成功解析,viewModel()但不能sharedViewModel()。我可以在导入中添加它,但我不能使用它。

在此处输入图片说明

依赖项:

def koin_version = "2.0.1"
implementation "org.koin:koin-android:$koin_version"
implementation "org.koin:koin-androidx-scope:$koin_version"
implementation "org.koin:koin-androidx-viewmodel:$koin_version"
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?

Nat*_*yev 6

问题是你试图sharedViewModel()Activity. 根据文档

共享其 ViewModel 的 Activity 通过 viewModel() 或 getViewModel() 注入它。片段通过 sharedViewModel() 重用共享的 ViewModel。

要验证,您可以检查FragmentExt.kt 的源代码,看到它sharedViewModel()Fragment扩展。所以,而不是override val viewModel: PaymentViewModel by sharedViewModel()你应该使用override val viewModel: PaymentViewModel by viewModel()