【发布时间】: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