Arp*_*kla 6 android kotlin android-jetpack-compose
我有一个公开事件流的视图模型。我已将 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
}
Run Code Online (Sandbox Code Playgroud)
SomeComponent我收集流而不收集流的原因MainScreen是因为我需要访问某些内部状态SomeComponent(实际上是 ScaffoldState)来处理事件。
我在我的应用程序中编写了这段代码,一切似乎都正常,但我不确定这是否是一件好事。
我的问题是:
这种方法是否有我遗漏的缺点?这里可能会出现什么问题?
将流作为参数传递就可以了。流并没有什么特别的。它只是另一个像其他数据源一样的数据源。如果您没有传递它,您将不得不想出一些其他方式来访问它,这可能会导致破坏可组合项应遵守的单向流模式。
| 归档时间: |
|
| 查看次数: |
913 次 |
| 最近记录: |