我只是在学习StateFlow。我有一个简单的StateFlow要观察:
private val _userClickedAction = MutableStateFlow( Event(false))
val userClickedAction: StateFlow<Event<Boolean>> = _userClickedAction.stateIn(
scope = viewModelScope,
started = WhileSubscribed(5000),
initialValue = Event(false)
)我试着在这样的活动中观察到它:
lifecycleScope.launch {
repeatOnLifecycle(Lifecycle.State.STARTED) {
valuePropViewModel.userClickedAction.collect {
valuePropViewModel.actionContext.runActionNamed(SECOND_OPTION_SELECTED)
}
}
}它不能编译,我得到了编译错误:
Type mismatch. Required: FlowCollector<Event<Boolean>> Found: () → Unit
我使用的是:
//生命周期组件
implementation "androidx.lifecycle:lifecycle-runtime-ktx:$lifecycle_version"
implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version"
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version"
implementation "androidx.lifecycle:lifecycle-process:$lifecycle_version"其中$lifecycle_version = 2.4.0
发布于 2021-11-09 14:39:17
显然,我使用了错误的collect版本。
implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.4.0-beta01")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.2")
import kotlinx.coroutines.flow.collect Type mismatch inferred type is () -> Unit but FlowCollector was expected
https://stackoverflow.com/questions/69889334
复制相似问题