Flutter MultiBlocProvider Производительность - PullRequest
0 голосов
/ 02 марта 2020

У меня есть MultiBlocProvider для приложения, которое имеет Нижняя панель навигации для навигации по основным маршрутам, таким как Домашняя страница , Поиск , Список пожеланий ...

Я использую setState(){}, чтобы изменить currentPage для каждого маршрута.

Недавно я добавил Blocks к каждому из них. используя пакет flutter_bloc, и я использую BlocProvider для предоставления blo c каждому BlocBuilder,

 @override
  Widget build(BuildContext context) {
    return SafeArea(
      top: false,
      child: Scaffold(
        key: _scaffoldKey,
        body: PageStorage(
          child: Stack(
            children: <Widget>[
              AnimatedSwitcher(
                duration: Duration(milliseconds: 200),
                  child: BlocProvider<WishlistBloc>(
                      create: (BuildContext context) => WishlistBloc(WishlistRepository()),
                      child: currentPage),
              ),
              bottomBar(currentPageScroll)
            ],
          ),
          bucket: bucket,
        ),
      ),
    );
  }

Можно ли использовать MultiBlocProvider для предоставления всех нужные мне BlocsProviders?

их может быть более 10 провайдеров, повлияет ли это на производительность приложения?

1 Ответ

1 голос
/ 03 марта 2020

Все нормально, MultiBlocProvider создан для этих целей. Но вы должны понимать, что если вы со своим созданием также отправляете (например) событие инициализации, которое начало загружать во все 10 блоков некоторые данные, у вас будут некоторые проблемы. Поэтому, если у вас возникнут проблемы с производительностью, создайте отдельный вопрос SO, и сообщество поможет найти причину root.

...