Flutter Navigation показывает маршрут как /

У меня есть карточка с PopupMenuButton, которую я могу нажать, чтобы выполнить действие «копировать». Я также могу выполнить то же действие на странице сведений о карте. Проблема, с которой я столкнулся, состоит в том, чтобы вернуться на домашнюю страницу, я должен обслуживать оба пути. Поэтому, если действие выполняется со страницы сведений, мне нужно дважды щелкнуть, чтобы вернуться на домашнюю страницу.

Действие с домашней страницы:

Главная ›страница добавления карты

  • navigator.pop () возвращает меня на домашнюю страницу

Действие на странице сведений:

главная ›страница с данными карты› страница добавления карты

  • Придется здесь дважды щелкнуть.

Я знаю, что мне нужно сделать pop хотя бы один раз, а затем я использовал popUntil, чтобы проверить текущее состояние маршрута. Почему-то всегда появляется дважды.

После отладки текущий маршрут отображается как /

  void _changeRoute(String newRouteName) {
    bool isNewRoute = false;

    // Pop once
    Navigator.pop(context); // after this I should be on home page for the first path

    Navigator.popUntil(context, (route) {
      print('Current route is ${route.settings.name}');

      if (route.settings.name == newRouteName) { // but this is showing current route as /
        isNewRoute = true;
      }
      return true;
    });

    print('is home page: $isNewRoute');

    if (!isNewRoute) {
      Navigator.pop(context);
    }
  }


person coding1223322    schedule 16.10.2019    source источник


Ответы (1)


У меня это работает.

Моя проблема заключалась в том, что в моем основном приложении я указал свойство home на MaterialApp. Согласно документации, если указано свойство home, он выбирает маршрут /. Итак, моя домашняя страница - /, и я определил ее как /home в моих маршрутах, и это было отменено /.

person coding1223322    schedule 16.10.2019