gpt4 book ai didi

flutter - 同一个流(QuerySnapshot)可以与不同页面上的多个 StreamBuilder 一起使用吗? - - flutter

转载 作者:行者123 更新时间:2023-12-05 06:12:56 25 4
gpt4 key购买 nike

也许这是一个新手问题,但我想知道是否可以使用相同的流(Stream)来构建两个页面的用户界面。让我们举个例子:如果有两个页面应该显示从 firebase 读取的相同数据列表(比如用户名和地址)。这可以通过从 firestore 读取一次数据并在每个页面上使用相同的 streamstreambuilder 来完成吗?

我能够在第一页上显示列表(使用 streambuilder 和 Listview.builder),但是当我导航到第二页并使用相同的流时(不是再次从 firebase 读取它,而是使用第一次读取的相同流页)它不起作用。我试过 StreamController.broadcast();也是,但没有运气。

有人可以帮忙吗?

最佳答案

发生这种情况是因为流已经有监听器(第一个 StreamBuilder )。相反,您可以使用某种状态管理(它会因应用程序的复杂性而异)并提供流。

假设您正在收听 Stream<List<int>> (举个简单的例子)。如果您使用 flutter_bloc包,你可以有一个带有 StreamSubscription 的 BLoC这将是那个 Stream 的唯一听众然后你可以在你的应用程序周围使用来自 BLoC 的数据。
如果您对 Reactive Programming 和 Dart Streams 知之甚少,可能会感到困惑(我必须承认,我已经浪费了很多时间试图理解它 - 但它比它看起来更简单!),但是 fluter_bloc包有很好的文档。你可以找到an example其中它使用 StreamSubscription使用 Firestore!

如果您对包或任何示例有任何疑问,请随时在 GitHub 存储库中发布问题!

关于flutter - 同一个流(QuerySnapshot)可以与不同页面上的多个 StreamBuilder 一起使用吗? - - flutter ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63490052/

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