如何刷新使用在单独的有状态小部件中管理的 BLoC 模式调用的元素列表?
How can I refresh list of elements called using BLoC pattern managed in separate Stateful Widget?
我有一种场景,如图所示。在单个屏幕 Post 中显示该帖子的信息和评论的位置。也可以通过单击加号图标添加评论并添加新评论。
我的屏幕结构如下:
- Post详情
- Post信息屏幕
- PostCommentListScreen(这是使用 BLoC 模式实现的分页 API 调用)
- Post添加新评论屏幕
现在,我面临的问题是当用户添加新评论时刷新此评论列表。 (即最初,有 10 条评论,如果我从 PostAddNewCommentScreen 添加新评论,然后我回到 PostInfoScreen,来自 PostCommentListScreen 的评论列表应该刷新以获取新添加的评论和一个计数增加到以前的总计数)
我面临的是,用于获取评论列表的 BLoC 是在 PostCommentListScreen 中创建的,并传递了 Post id 以获取评论列表。添加新评论后返回 PostInfoScreen 时,如何将事件添加到 PostCommentListScreen BLoC 以对更新的评论列表进行新的 API 调用。
任何遇到和我一样的问题的人,下面是解决方案。
- 在
PostDetail
屏幕上使用 MultiBlocProvider
并使用 BlocProvider
用于 PostCommentListScreen
以及 BLoC
用于 PostInfoScreen
创建 BLoC
如果它在那里。 (在我的场景中,我提供了多个 BLoC
)。
- 在
PostDetail
上,声明 PostInfoScreenBloc
和 PostCommentListScreenBloc
的实例并将其附加到使用 BlocProvider.of<T>(context)
.[=34 从上面提供的可用 BLoC
=]
- 我们可以使用
PostCommentListScreenBloc
的实例来添加一个事件来刷新评论列表并获取最新的数据。
请记住,这仅适用于我们在单独的 StatefulWidget
中有一部分屏幕(在我的例子中是评论列表)的场景,它有自己的 BLoC
。
我有一种场景,如图所示。在单个屏幕 Post 中显示该帖子的信息和评论的位置。也可以通过单击加号图标添加评论并添加新评论。
我的屏幕结构如下:
- Post详情
- Post信息屏幕
- PostCommentListScreen(这是使用 BLoC 模式实现的分页 API 调用)
- Post添加新评论屏幕
现在,我面临的问题是当用户添加新评论时刷新此评论列表。 (即最初,有 10 条评论,如果我从 PostAddNewCommentScreen 添加新评论,然后我回到 PostInfoScreen,来自 PostCommentListScreen 的评论列表应该刷新以获取新添加的评论和一个计数增加到以前的总计数)
我面临的是,用于获取评论列表的 BLoC 是在 PostCommentListScreen 中创建的,并传递了 Post id 以获取评论列表。添加新评论后返回 PostInfoScreen 时,如何将事件添加到 PostCommentListScreen BLoC 以对更新的评论列表进行新的 API 调用。
任何遇到和我一样的问题的人,下面是解决方案。
- 在
PostDetail
屏幕上使用MultiBlocProvider
并使用BlocProvider
用于PostCommentListScreen
以及BLoC
用于PostInfoScreen
创建BLoC
如果它在那里。 (在我的场景中,我提供了多个BLoC
)。 - 在
PostDetail
上,声明PostInfoScreenBloc
和PostCommentListScreenBloc
的实例并将其附加到使用BlocProvider.of<T>(context)
.[=34 从上面提供的可用BLoC
=] - 我们可以使用
PostCommentListScreenBloc
的实例来添加一个事件来刷新评论列表并获取最新的数据。
请记住,这仅适用于我们在单独的 StatefulWidget
中有一部分屏幕(在我的例子中是评论列表)的场景,它有自己的 BLoC
。