从Screen2(使用StreamBuilder)需要参数数据时导航(从任何屏幕)到Screen3)

问题描述 投票:0回答:1

考虑以下结构:

Screen1 -> Screen2 -> Screen3

Screen2有一个StreamBuilder连接到FirestoreListView.builder,显示聊天列表。如果用户点击聊天,则会打开相应的群聊。所以Screen2Screen3提供了很多参数,比如groupId,groupName,groupImage等,以打开与其所有数据的正确聊天。

我现在想要导航到Screen3的特定聊天,让我们说一下groupId 22233313,只需点击一下(是的,推送通知)。我有groupId,但我首先需要从Screen2(在StreamBuilder之外)获取数据,否则我会得到很多空值。

我可以以某种方式打开Screen2,自动点击与相应groupId的聊天去Screen3或者你有更好的主意吗?

flutter flutter-layout flutter-dependencies
1个回答
0
投票
  1. 我认为你不应该让你的FireStore数据依赖于屏幕。
  2. 创建一个存储库类来保存您的数据。
  3. 收到数据时,将其传递给存储库类。
  4. 虽然打开屏幕3仅从屏幕2传递groupId。
  5. 使用groupId从存储库访问您的数据。
  6. 在通知的情况下,类似的结构将适用于您。

我建议你使用BLoC模式这样做。

© www.soinside.com 2019 - 2024. All rights reserved.