Как управлять состоянием между вкладками в приложении Flutter - PullRequest
0 голосов
/ 09 сентября 2018

Я использую TabBar в моем приложении, где мне нужно получить входные данные на первой вкладке и показать
вывод на основе некоторых расчетов на другой вкладке.

Я могу получить ввод на первой вкладке, но когда я нажимаю на вторую вкладку, мое состояние теряется. Я не уверен, должен ли я сделать это виджетом с сохранением состояния на корневом уровне.

Я относительно новичок в мобильном приложении. Может ли кто-нибудь помочь мне здесь?

EDIT:

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

Я решил вышеупомянутую проблему, используя AutomaticKeepAliveClientMixin , как описано в ответе ниже.

Ответы [ 2 ]

0 голосов
/ 10 сентября 2018

Я думаю, что вы можете быть после AutomaticKeepAliveClientMixin. Я всегда добавляю это к моим виджетам экрана в пределах TabBarView. Таким образом, когда пользователь вводит данные в поля на одной вкладке и переходит на другие вкладки и обратно, данные все еще там, как и следовало ожидать. Затем, когда пользователь выполняет действие типа «сохранить», я имею дело с управлением состоянием (BLoC и т. Д.).

0 голосов
/ 09 сентября 2018

Возможно, вы захотите использовать архитектуру для управления и обмена состояниями. Существует много подходов к управлению состоянием:

  1. InheritedWidget для передачи состояния приложения вниз по иерархии виджетов
  2. Библиотека модели Scoped для хранения состояния приложения и уведомления виджетов об обновлениях
  3. Библиотека Redux для управления состоянием приложения и обновления виджетов
  4. Компоненты бизнес-логики (BLoC)

Ознакомьтесь с этой статьей . Проверьте этот репозиторий GitHub с различными примерами архитектуры

...