用Koin注入变量更改值

时间:2019-04-26 16:29:23

标签: kotlin koin

我需要为我的单个Koin变量分配一个新值,但是Koin不允许在注入的变量上使用var ...

private val userAssets: UserAssets by inject()

如何在userAssets上设置值? 还是要让U​​serAssets Singleton做其他事情?

val dataModule = module {
    factory {
        RetrofitBuilder(
            androidContext()
        )
    }
    single { LoginCredential() }
    single { UserAssets() }
}

2 个答案:

答案 0 :(得分:1)

我个人不使用Koin,因此无法验证它,但是Koin还提供了一种使用get()直接检索实例的方法。因此,在您的情况下:

private var userAssets: UserAssets = get()

可能会起作用,因此您以后可以重新分配它,至少我从他们的documentation了解到这一点。

答案 1 :(得分:1)

嗨,您可以尝试在reference处声明注入参数。

在该模块中,您可以编写:

single { value : String -> UserAssets(value) }

那么您应该可以使用注入

val userAssets : UserAssets by inject { parametersOf("value") }