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

时间:2020-05-18 13:06:15

标签: flutter bloc flutter-bloc

enter image description here

此图像中显示了一种情况。在单个屏幕中的何处显示帖子信息和对该帖子的评论。也可以通过单击加号图标添加评论并添加新评论。

我的屏幕结构如下:

  • PostDetail
    • PostInfoScreen
    • PostCommentListScreen(这是通过BLoC模式实现的分页API调用)
    • PostAddNewCommentScreen

现在,我面临的麻烦与用户添加新评论时刷新此评论列表有关。 (即,最初有10条评论,如果我要从PostAddNewCommentScreen添加一个新评论,然后又移回PostInfoScreen,则应该刷新来自PostCommentListScreen的评论列表以获取新添加的评论,并且一个计数增加到以前的总数)

我要面对的是,用于获取评论列表的BLoC是在PostCommentListScreen中创建的,其中传递了Post ID以获取评论列表。添加新注释后返回PostInfoScreen时,如何将Event添加到PostCommentListScreen BLoC中以对更新的注释列表进行新的API调用。

1 个答案:

答案 0 :(得分:0)

遇到像我一样遇到的同样问题的人,下面是解决方法。

  • MultiBlocProvider屏幕上使用PostDetail,并使用BLoC的{​​{1}}和BlocProvider的{​​{1}}创建PostCommentListScreen那里。 (在我的情况下,我有多个BLoC要提供。)
  • PostInfoScreen上,声明BLoCPostDetail的实例,并使用PostInfoScreenBloc将其附加到上面提供的可用PostCommentListScreenBloc上。
  • 我们可以使用BLoC实例添加事件以刷新评论列表并获取最新数据。

请记住,这仅适用于以下情况:我们在单独的BlocProvider.of<T>(context)中拥有自己的PostCommentListScreenBloc的屏幕的一部分(在我的情况下为评论列表)。