Kotlin 使用Koin注入变量更改值

Kotlin 使用Koin注入变量更改值,kotlin,koin,Kotlin,Koin,我需要给我的单个Koin变量分配一个新值,但是Koin不允许在注入的变量上使用var private val userAssets: UserAssets by inject() 如何设置用户资产的价值? 还是要做另一件事来使UserAssets成为单例 val dataModule = module { factory { RetrofitBuilder( androidContext() ) } single

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

private val userAssets: UserAssets by inject()
如何设置用户资产的价值? 还是要做另一件事来使UserAssets成为单例

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

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

private var userAssets: UserAssets = get()

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

您好,您可以尝试声明注入参数,这里是

在模块中,您可以编写:

single { value : String -> UserAssets(value) }
那么你应该可以使用inject

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