gpt4 book ai didi

android - Koin 2.2.1 : I cannot use "by viewModel" in Activity

转载 作者:行者123 更新时间:2023-12-04 00:53:01 25 4
gpt4 key购买 nike

无法使用 Activity 中的“by viewModel”
我想为 Activity 注入(inject) ViewModel,所以我尝试了这个。但它失败了,Android Studio 找不到它的引用。

private val mainViewModel: MainViewModel by viewModel()
我的 Activity 延长 AppCompatActivity ,并且 gradle 依赖项包括以下库:
implementation 'androidx.core:core-ktx:1.3.2'
def koin_version = '2.2.1'
implementation "org.koin:koin-android:$koin_version"
implementation "org.koin:koin-androidx-scope:$koin_version"
implementation "org.koin:koin-androidx-viewmodel:$koin_version"
implementation "org.koin:koin-androidx-fragment:$koin_version"
implementation "androidx.lifecycle:lifecycle-viewmodel-savedstate:$koin_version"
我试过的:
下面的代码正在运行,但我想使用 Koin 2.2.0 的新默认“SavedStateHandle”功能。
private val mainViewModel: MainViewModel by inject()
我发现这段代码已经包含在内,Android Studio 找不到它。
ActivityExt.kt:
inline fun <reified T : ViewModel> ComponentActivity.viewModel(
qualifier: Qualifier? = null,
noinline state: BundleDefinition? = null,
noinline owner: ViewModelOwnerDefinition = { from(this, this) },
noinline parameters: ParametersDefinition? = null,
): Lazy<T> {
return lazy(LazyThreadSafetyMode.NONE) {
getViewModel(qualifier, state, owner, parameters)
}
}
在 fragment 中, viewModelsharedViewModel工作正常。
private val viewModel by viewModel<SearchViewModel>()
private val mainViewModel by sharedViewModel<MainViewModel>()
问题:
使用 Koin 2.2.0+ 版本在 Activity 中注入(inject) ViewModel 的最佳方法是什么?

最佳答案

我手动添加了这个,它工作正常。

import org.koin.androidx.viewmodel.ext.android.viewModel

关于android - Koin 2.2.1 : I cannot use "by viewModel" in Activity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64953131/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com