通过热重载保留嵌套导航器路线

Dan*_*zak 6 nested navigator flutter

我有基本的嵌套导航器设置,但是当我在重新加载后在特定屏幕上工作时,我会重定向到初始屏幕,而不是我正在处理的屏幕。是否可以以某种方式保留当前屏幕?

class SignupNavigator extends StatelessWidget {
  final GlobalKey<NavigatorState> navigatorKey = GlobalKey<NavigatorState>();

  SignupNavigator();

  Widget _routeBuilder(String name, BuildContext context,
      {int materialIndex: 500}) {
    final routes = {
      SignupRoutes.role: (BuildContext _) => SignupRole(),
      SignupRoutes.phoneNumber: (BuildContext _) => SignupPhoneNumber(),
      SignupRoutes.schools: (BuildContext _) => SignupSchools(),
      SignupRoutes.info: (BuildContext _) => SignupInfo(),
      SignupRoutes.credentials: (BuildContext _) => SignupCredentials(),
      SignupRoutes.summary: (BuildContext _) => SignupRole(),
    };

    return routes[name](context);
  }

  @override
  Widget build(BuildContext context) {
    return Navigator(
      key: navigatorKey,
      initialRoute: SignupRoutes.role,
      onGenerateRoute: (routeSettings) {
        return MaterialPageRoute(
          builder: (context) => _routeBuilder(routeSettings.name, context),
        );
      },
    );
  }
}
Run Code Online (Sandbox Code Playgroud)