【发布时间】:2021-08-28 12:37:21
【问题描述】:
我希望结合 4 个 StateFlow 值并从中生成 1 个 StateFlow。我已经知道这样的组合功能:
val buttonEnabled = cameraPermission.combine(micPermission) {
//some logic
}
这怎么能用 4 个流来完成?当我尝试以下操作时,我得到了参数太多的错误,但是组合函数文档确实说您最多可以添加 5 个流?
val buttonEnabled = cameraPermission.combine(micPermission, locationPermission, contactsPermission) {
}
【问题讨论】:
-
使用顶级
combine函数代替扩展函数,并将所有四个流放在括号中。 -
这确实解决了最初的错误,但现在我遇到了这个错误:“重载分辨率模糊。所有这些功能都匹配”。
-
@alfietap 您在 lambda 中指定的参数数量是否与
combine的参数中的流一样多? -
不,这是我的问题,现在一切正常!
-
您能解释一下它现在是如何工作的吗?
标签: android kotlin flow stateflow