【问题标题】:Unable to use shared state ViewModel in Koin 2.1.6无法在 Koin 2.1.6 中使用共享状态 ViewModel
【发布时间】:2020-11-11 10:11:37
【问题描述】:

我在我的应用模块中使用 Koin 2.1.6。这是我使用的人工制品

implementation "org.koin:koin-android:2.1.6"
implementation "org.koin:koin-core:2.1.6"
implementation "org.koin:koin-androidx-viewmodel:2.1.6"
implementation "org.koin:koin-androidx-fragment:2.1.6"

Koin 模块是

val userModule = module {
   viewModel { (handle: SavedStateHandle) -> UserViewModel(get(), handle) }
}

class UserViewModel(
         val iService: IService, //injected from core module
         val handle: SavedStateHandle
) : ViewModel()

我在UserFragment上使用这个ViewModel

private val viewModel: UserViewModel by stateViewModel()

UserFragment 包含一个内部片段-UserUpdates,从布局膨胀,共享上述ViewModel

  <fragment android:name="UserUpdates"
            android:id="@id/fragment_user_updates"
            android:width="match_parent"
            android:height="wrap_content" />

UserUpdates 片段上,我将ViewModel 设置如下

 private val viewModel: UserViewModel by stateSharedViewModel()

但是,我发现生成的 ViewModel 实例不是共享的。事实上,它们是作为新对象创建的。有什么我想念的吗?

【问题讨论】:

标签: android kotlin android-viewmodel android-mvvm koin


【解决方案1】:

我相信你需要使用stateSharedViewModel(而不是你现在使用的stateViewModel

【讨论】:

    猜你喜欢
    • 2010-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多