收集 stateFlow 列表

Collect list of stateFLow

我有一个整数状态流列表。

listOfFlows : List<StateFlow<Int>> 

我需要一个单一的状态流,它将是列表状态流的总和。

sum: StateFlow<Int>

我该怎么做?

您可以使用 combine 创建一个流,每当其中一个流发出时,它会发出源流所有当前值的总和:

val sumFlow = combine(stateFlows) { it.sum() }

如果你真的需要 StateFlow 作为结果,你可以使用 stateIn:

val sumFlow = combine(stateFlows) { it.sum() }
val sumStateFlow = sumFlow.stateIn(someScope)