`StateFlow`发出初始值后无法收集

问题描述 投票:0回答:0

我正在将我的项目迁移到 Jetpack Compose。为此,我从 Compose 的单独单例类中使用

StateFlow
发出事件,并在我的 ViewModel 中使用
collect
发出事件。但是,在发出一个事件后,我的 ViewModel 中的流中没有收集到任何其他信息:

  1. 发出我的单例类:
    private val _eventsFlow = MutableStateFlow<SheetEvent>(SheetEvent.Collapsed)
    val eventsFlow: Flow<SheetEvent> = _eventsFlow
    
    fun produceEvent(event: String) {
            var sheetEvent: SheetEvent = SheetEvent.RandomEvent
            _eventsFlow.value = sheetEvent
        }
  1. 在 ViewModel 中收集:
    @HiltViewModel
    class FarmViewModel @Inject constructor(
        private val bottomSheetEvents: BottomSheetEvents
    ) : ViewModel() {
    init {
            viewModelScope.launch {
                bottomSheetEvents.eventsFlow
                    .collect { event ->
                        Log.i("FarmViewModel", "flow event: $event)")
                    }
            }
        }
android kotlin android-viewmodel stateflow
© www.soinside.com 2019 - 2024. All rights reserved.