Флаттер Назад Навигация и Блок данных
У меня есть этот поток
screen1->screen2(A)->screen2(B)
То, что происходит, с экрана 1 переходит к подробному экрану 2 (с набором данных A), затем внутри этого экрана есть кнопка, которая снова вызовет screen2 с другим набором данных (набор данных B)
Поэтому, когда я хочу вернуться назад, это где данные все еще показывают данные B
screen2(B)->screen2(B)->screen1
Что я ожидаю
screen2(B)->screen2(A)->screen1
Это как-то связано с шаблоном BloC BehaviorSubject? Я пытаюсь PublishSubject, но и тот же результат.
1 ответ
Определите глобальную переменную с начальным значением как A
и по вашему Navigator.push()
метод меняет свое значение на B
, на onPop()
метод screen2
изменить значение обратно на A
,
Я бы немного изменил вашу навигацию, чтобы вы использовали
Navigator.of(context).pushNamed('screen2', arguments: {'categoryId': categoryId});
И ваш виджет screen2 при сборке получает указанный идентификатор категории из аргументов
Map args = ModalRoute.of(context).settings.arguments;
получает его детали и показывает это или делает что угодно. Затем, когда вы нажимаете кнопку возврата устройства, оно должно работать должным образом.