gpt4 book ai didi

android - 可以将流从一个可组合传递到另一个吗?

转载 作者:行者123 更新时间:2023-12-04 14:46:45 25 4
gpt4 key购买 nike

我有一个显示事件流的 View 模型。我将该 viewModel 注入(inject)到顶级可组合中,但我想将事件发送到另一个可组合(在顶级可组合内)。
像这样的东西:

@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)用于处理事件。
我在我的应用程序中编写了这段代码,一切似乎都正常,但我不确定这是否是一件好事。
我的问题是:
我错过了这种方法有什么缺点吗?这里可能出了什么问题?

最佳答案

将流作为参数传递很好。流没有什么特别之处。它只是另一个数据源,就像其他任何东西一样。如果你没有把它传入,你将不得不想出一些其他的方法来访问它,这可能会导致打破 Composables 应该遵守的单向流模式。

关于android - 可以将流从一个可组合传递到另一个吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69898899/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com