【发布时间】:2021-05-17 15:16:15
【问题描述】:
我正在尝试学习 MVI。我正在更新转换开关图正在观察的状态事件实时数据。这是在我的视图模型中。
fun setStateEvent(event: StateEvent) {
Timber.d("SetStateEvent: [$event]")
_stateEvent.value = event
}
val dataState: LiveData<DataState<CustomViewState>> = Transformations.switchMap(_stateEvent) { stateEvent ->
Timber.d("Got state event [$stateEvent]")
stateEvent?.let {
handleStateEvent(it)
}
}
现在在我看来,我正在尝试执行两个操作:
viewmodel.setStateEvent(CustomStateEvent.ActionOne())
viewmodel.setStateEvent(CustomStateEvent.ActionTwo())
这些是我的日志:
SetStateEvent: [CustomStateEvent$ActionOne]
SetStateEvent: [CustomStateEvent$ActionTwo]
Got state event [CustomStateEvent$ActionTwo]
...
由于某种原因,第一个被取消/忽略。我做错了什么?
【问题讨论】:
标签: android android-livedata kotlin-coroutines android-jetpack