У меня есть родительский виджет «BookmarkedShows» и дочерний виджет «ListOfShows». Из дочернего виджета, когда пользователь нажимает на элемент списка, открывается страница сведений. Когда пользователь удаляет шоу из закладки со страницы сведений, при нажатии кнопки «Назад» шоу не удаляется со страницы списка. ie родительский объект не обновляется. Я использую BlocBuilder.
В другом вопросе упоминаются некоторые параметры для добавления .then () в метод Navigator.pu sh (). Однако Navigator.pu sh () происходит в дочернем компоненте. Как мне принудительно обновить sh родительский BlocBuilder во время Navigation.pop ()?
Родительский «BookmarkedShows»:
class BookmarkedShows extends StatelessWidget {
@override
Widget build(BuildContext context) {
return BlocProvider(
create: (context) => BookmarkShowsBloc()..add(LoadBookmarkedShows()),
child: BlocBuilder<BookmarkShowsBloc, BookmarkedShowsState>(
builder: (BuildContext context, BookmarkedShowsState state) {
return ShowList("Bookmarked shows", state.shows)
}),
);
}
}
Дочерний «ListOfShows»:
class ListOfShows extends StatelessWidget {
final String listName;
final List<Show> shows;
const ListOfShows(this.listName, this.shows);
@override
Widget build(BuildContext context) {
return Wrap(children: shows.map((show) => showItem(show, context)).toList());
}
InkWell showItem(Show show, BuildContext context) {
return InkWell(
onTap: () async {
await Navigator.of(context).push(MaterialPageRoute(
builder: (context) => showDetails(show)));
},
child: Container(
CachedNetworkImage(
imageUrl: show.portraitPoster
),
));
}
}