gpt4 book ai didi

具有多个相同类参数的 Android Koin 注入(inject) View 模型失败

转载 作者:行者123 更新时间:2023-12-05 00:18:00 28 4
gpt4 key购买 nike

我正在按照她所说的文档进行操作 https://insert-koin.io/docs/reference/koin-android/viewmodel/#viewmodel-and-injection-parameters

唯一的区别是我的 View 模型有 2 个(除了 Koin 注入(inject)的 repos 之外)相同类字符串的参数。让我们称它们为 stringA = "red"和 stringB = "blue"。

当我传递参数时,这些参数的定义明显不同。但是当 View 模型被实例化时,我记录了字符串并且它们都具有 stringA 的值,“red”。

我可以将它们都包装到一个数据类中,但理想情况下我希望将它们分开,知道哪里出了问题或应该做什么吗?

Koin 模块

val viewModelsModule = module {

viewModel { params ->
MyViewModel(get(), stringA = params.get(), stringB = params.get(), get()) }

}

View 模型注入(inject)

  val viewModel: MyViewModel = getViewModel(parameters = {parametersOf("red", "blue")})

MyViewModel中的参数检查

init {
viewModelScope.launch {
Log.d("TAG", "$stringA $stringB")
}
}

并打印:

red red

最佳答案

params.get() 按类型解析参数。由于两者都是字符串,因此在两种情况下都会匹配第一个。它仅在类型不同(例如 int 和 String)时隐式工作。

解决方案是索引参数:stringA = params[0], stringB = params[1]

上下文的较长 fragment :

viewModel { params ->
MyViewModel(get(), stringA = params[0], stringB = params[1], get()) }

关于具有多个相同类参数的 Android Koin 注入(inject) View 模型失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70459983/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com