Подходит ли шаблон Blo c для управления навигацией в приложении Flutter? - PullRequest
1 голос
/ 29 апреля 2020

Я спрашиваю, является ли bloc_flutter (реализация шаблона Blo c для флаттера) правильным решением для управления "навигацией" приложения.

Я использовал bloc_flutter для управления входом через firebase https://github.com/felangel/bloc/tree/master/examples/flutter_firebase_login.

После успешного входа в систему пользователь попадает в «экран приветствия» с меню. Я пытался управлять экранной навигацией по этому меню, используя новый шаблон blo c, но мне это кажется подавляющим решением. Более того, использование навигации с шаблоном blo c не позволяет использовать Android «кнопку возврата».

Так что, на ваш взгляд, было бы лучше, по вашему мнению, использовать навигацию по маршрутам и позволить blo c управляет логикой c каждого экрана?

Ответы [ 2 ]

0 голосов
/ 06 мая 2020

Нет, это не так. Если вы хотите, чтобы ваше приложение имело хорошую архитектуру, вам не следует использовать blo c для управления навигацией, поскольку навигация не связана с бизнес-логикой приложения c, а является частью пользовательского интерфейса.

0 голосов
/ 29 апреля 2020

Я передаю GlobalKey<NavigatorState> в blo c и могу выполнять навигацию оттуда:

  @override
  Stream<MyScreenState> mapEventToState(
    MyScreenEvent event,
  ) async* {
    if (event is SomeEvent) {
      _navigatorKey.currentState.push(...);
    }
  }

Обратите внимание, что этот ключ необходимо использовать при MaterialApp создании экземпляра, чтобы все заработало:

MaterialApp(
  navigatorKey: _navigatorKey,
  ...
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...