【问题标题】:Navigate (from any Screen) to Screen3 while needing parameter data from Screen2 (which uses StreamBuilder))导航(从任何屏幕)到 Screen3,同时需要来自 Screen2(使用 StreamBuilder)的参数数据)
【发布时间】:2019-04-08 09:20:13
【问题描述】:

考虑以下结构:

Screen1 -> Screen2 -> Screen3

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

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

我可以以某种方式打开Screen2,自动点击相应groupId的聊天以转到Screen3还是您有更好的主意?

【问题讨论】:

    标签: flutter flutter-layout flutter-dependencies


    【解决方案1】:
    1. 我认为您不应该让 FireStore 数据依赖于屏幕。
    2. 创建一个存储库类来保存您的数据。
    3. 当您收到数据时,将其传递给您的存储库类。
    4. 在打开屏幕 3 时,仅从屏幕 2 传递 groupId。
    5. 使用 groupId 从存储库访问您的数据。
    6. 类似的结构适用于您收到通知。

    我建议您使用 BLoC 模式来执行此操作。

    【讨论】:

    • 在不改变我的洞数据结构的情况下有更简单的解决方案吗?
    猜你喜欢
    • 2020-04-23
    • 2023-03-20
    • 1970-01-01
    • 2023-03-31
    • 2021-07-19
    • 1970-01-01
    • 2017-10-21
    • 1970-01-01
    • 2019-09-15
    相关资源
    最近更新 更多