【问题标题】:How to create a separate routing for a module in Flutter?如何在 Flutter 中为模块创建单独的路由?
【发布时间】:2021-06-25 12:11:32
【问题描述】:

我有两个页面:ConversationsListScreen(显示对话列表)和ConversationScreen(显示特定对话,用户从 ConversationsListScreen 进入)。

这两个页​​面应该被包装到一个单独的模块中,因为它们都需要相同的数据(我想通过公共 cubit 类提供)。这样我就创建了一个 MessagesModule

    class MessagesModule extends StatelessWidget {
      final String _currentUserId;
      final String _currentLocale;
    
      const MessagesModule({
        @required String currentUserId,
        @required String currentLocale,
      })  : _currentUserId = currentUserId,
            _currentLocale = currentLocale;
    
      @override
      Widget build(BuildContext context) {
        return BlocProvider<MessagesModuleCubit>(
          create: (context) => MessagesModuleCubit(_currentUserId, _currentLocale),
          child: ConversationsListScreen(),
        );
      }
    }

重定向到 ConversationScreen 后,它会在与 MessagesModule 相同的级别打开,这意味着我的上下文不包含 MessagesModuleCubit。但我希望看到 ConversationScreen 嵌套到 MessagesModule,与 ConversationsListScreen 相同。 Here is a current structure of my widgets

如何管理这两个页面的路由,以便我可以从 MessagesModuleCubit 使用它们的共同状态?

【问题讨论】:

    标签: flutter bloc flutter-navigation cubit


    【解决方案1】:

    您可以将提供程序移动到您的主文件中,以便在任何情况下都包含两个小部件

    【讨论】:

      猜你喜欢
      • 2018-01-28
      • 2019-02-19
      • 2018-04-29
      • 2013-07-27
      • 2020-10-02
      • 1970-01-01
      • 2017-07-19
      • 2020-11-17
      • 1970-01-01
      相关资源
      最近更新 更多