我需要为我的单个Koin变量分配一个新值,但是Koin不允许在注入的变量上使用var ...
private val userAssets: UserAssets by inject()
如何在userAssets上设置值? 还是要让UserAssets Singleton做其他事情?
val dataModule = module {
factory {
RetrofitBuilder(
androidContext()
)
}
single { LoginCredential() }
single { UserAssets() }
}
答案 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") }