首页 > 解决方案 > 导航不去指定的路线

问题描述

我正在尝试使用该导航器键将路线更改为不同的导航器,但是当导航到另一个导航器时,没有任何反应

Navigator(
      key: Provider.of<RoutesProvider>(context, listen: false).firstKey,
      onGenerateRoute: (settings) {
        return MaterialPageRoute(
          settings: settings,
          builder: (context) {
            switch (settings.name) {
              case '/':
                return FirstPage();
              case '/second':
                return SecondPage();
              default:
                throw Exception('Invalid route: ${settings.name}');
            }
          },
        );
      },
    );

另一个页面:

Navigator(
      key: Provider.of<RoutesProvider>(context, listen: false).secondKey,
      onGenerateRoute: (settings) {
        return MaterialPageRoute(
          settings: settings,
          builder: (context) {
            switch (settings.name) {
              case '/':
                return ThirdPage();
              case '/fourth':
                return Fourth();
              default:
                throw Exception('Invalid route: ${settings.name}');
            }
          },
        );
      },
    );

在应用程序的第二个导航器部分中,我尝试使用上下文更改页面:

final BuildContext firstContent = Provider.of<RoutesProvider>(context, listen: false).firstContent.currentContext;
Navigator.of(firstContent).pushNamed('/');

似乎该路线中的代码被调用(添加了 aprint并运行),但可视屏幕保持在同一页面上。

标签: flutter

解决方案


推荐阅读