-1

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

private val userAssets: UserAssets by inject()

如何在 userAssets 上设置值?或者还有其他事情要做来制作 UserAssets Singleton?

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

2 回答 2

1

我个人不使用 Koin,所以无法验证,不过 Koin 也提供了一种直接用get(). 所以在你的情况下:

private var userAssets: UserAssets = get()

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

于 2019-04-26T17:38:45.010 回答
1

嗨,您可以尝试使用声明注入参数,这里是参考

在模块中,您可以编写:

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

那么你应该可以使用注入

val userAssets : UserAssets by inject { parametersOf("value") }
于 2019-05-04T11:57:23.510 回答