вложенный навигатор. - PullRequest
       18

вложенный навигатор.

0 голосов
/ 27 октября 2019

Я пытаюсь нажать pamedNamedAndRemoveUntil, но я замечаю, что мой предикат продолжает возвращать ноль в качестве маршрута.

Мой код:

Navigator.pushNamedAndRemoveUntil(
  context, 'search/studyPage',
  (Route<dynamic> route) {
    print(route);
    return false; // im returning false to illustrate that all the routes being "popped" are all returning null
    }, 
  arguments: StudyPageArgs(widget.study)
);

Это печатает:

MaterialPageRoute<dynamic>(RouteSettings("null", null), 
animation: AnimationController#117d7(⏭ 1.000; paused; 
for MaterialPageRoute<dynamic>(null)))
MaterialPageRoute<dynamic>(RouteSettings("null", null), 
animation: AnimationController#117d7(⏭ 1.000; paused; 
for MaterialPageRoute<dynamic>(null)))
MaterialPageRoute<dynamic>(RouteSettings("null", null), 
animation: AnimationController#117d7(⏭ 1.000; paused; 
for MaterialPageRoute<dynamic>(null)))
MaterialPageRoute<dynamic>(RouteSettings("null", null), 
animation: AnimationController#117d7(⏭ 1.000; paused; 
for MaterialPageRoute<dynamic>(null)))

Когда я делаю это, я могу нажать на свой предыдущий маршрут, но выскочив оттуда просто даетмне пустой экран. Это потому, что предикат продолжает возвращать ноль, поэтому все предыдущие маршруты удаляются из дерева. Любая идея, что происходит?

Пожалуйста, имейте в виду, что я использую настройку вложенного навигатора, идентичную моему другому вопросу здесь: ( .popUntil с вложенными навигаторами )

Спасибо

1 Ответ

0 голосов
/ 27 октября 2019

Я нашел хакерский и плохой способ сделать это. это все еще работает, хотя

Navigator.pushNamedAndRemoveUntil(
  context, 'search/studyPage',
  (Route<dynamic> route) {
setState(() {
  _popper = _popper + 1;
});
if (_popper == 4) {
  return true;
} else {
  return false;
}
}, arguments: StudyPageArgs(widget.study));
...