Изменить значение с помощью введенной переменной Коина - PullRequest
0 голосов
/ 26 апреля 2019

Мне нужно присвоить новое значение моей единственной переменной Koin, но Koin не позволяет использовать var для введенной переменной ...

private val userAssets: UserAssets by inject()

Как установить значение на userAssets? Или есть еще один способ сделать UserAssets Singleton?

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

Ответы [ 2 ]

1 голос
/ 04 мая 2019

Привет, вы можете попробовать с объявлением параметров впрыска, здесь ссылка .

В модуле вы можете написать:

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

тогда вы сможетеиспользовать инъекцию

val userAssets : UserAssets by inject { parametersOf("value") }
1 голос
/ 26 апреля 2019

Я лично не использую Koin, поэтому я не могу проверить его, но Koin также предоставляет способ прямого получения экземпляра с get().Так что в вашем случае:

private var userAssets: UserAssets = get()

Может сработать, чтобы вы могли позже переназначить его, по крайней мере, это то, что я понимаю из их документации .

...