如何刷新使用在单独的有状态小部件中管理的 BLoC 模式调用的元素列表?

How can I refresh list of elements called using BLoC pattern managed in separate Stateful Widget?

我有一种场景,如图所示。在单个屏幕 Post 中显示该帖子的信息和评论的位置。也可以通过单击加号图标添加评论并添加新评论。

我的屏幕结构如下:

现在,我面临的问题是当用户添加新评论时刷新此评论列表。 (即最初,有 10 条评论,如果我从 PostAddNewCommentScreen 添加新评论,然后我回到 PostInfoScreen,来自 PostCommentListScreen 的评论列表应该刷新以获取新添加的评论和一个计数增加到以前的总计数)

我面临的是,用于获取评论列表的 BLoC 是在 PostCommentListScreen 中创建的,并传递了 Post id 以获取评论列表。添加新评论后返回 PostInfoScreen 时,如何将事件添加到 PostCommentListScreen BLoC 以对更新的评论列表进行新的 API 调用。

任何遇到和我一样的问题的人,下面是解决方案。

  • PostDetail 屏幕上使用 MultiBlocProvider 并使用 BlocProvider 用于 PostCommentListScreen 以及 BLoC 用于 PostInfoScreen 创建 BLoC如果它在那里。 (在我的场景中,我提供了多个 BLoC)。
  • PostDetail 上,声明 PostInfoScreenBlocPostCommentListScreenBloc 的实例并将其附加到使用 BlocProvider.of<T>(context).[=34 从上面提供的可用 BLoC =]
  • 我们可以使用PostCommentListScreenBloc的实例来添加一个事件来刷新评论列表并获取最新的数据。

请记住,这仅适用于我们在单独的 StatefulWidget 中有一部分屏幕(在我的例子中是评论列表)的场景,它有自己的 BLoC