【发布时间】:2021-11-09 13:21:24
【问题描述】:
我有一个展示事件流的视图模型。我将该 viewModel 注入到顶层可组合中,但我想将事件发送到另一个可组合(在顶层可组合内)。 像这样的:
@Composable
fun MainScreen(viewModel: MyViewModel) {
SomeComponent(viewModel.events)
// Other Stuff
}
@Composable
fun SomeComponent(events: Flow<MyEvent>) { // MyEvent is a sealed class
LaunchedEffect(Unit) {
events.collect {
// Process the events
}
}
// Other stuff
}
我在SomeComponent 而不是MainScreen 中收集流的原因是因为我需要访问SomeComponent 的一些内部状态(实际上是一个ScaffoldState)来处理事件。
我在我的应用程序中编写了这段代码,一切似乎都正常,但我不确定这是否是一件好事。
我的问题是:
我错过了这种方法有什么缺点吗?这里可能出了什么问题?
【问题讨论】:
标签: android kotlin android-jetpack-compose