flutter - 在 flutter web 中导航回上一页时,URL 路径未更改

标签 flutter dart web routes

我正在开发一个 flutter 应用程序。我已经在应用程序中使用命名路由设置了路由器。转到我的主页时,它显示为 locahost:1234/#/home。并且路径是正确的。但从那里导航回上一页时,它仍然显示相同的路径 locahost:1234/#/home。返回时路径 url 不会改变。如果有人有想法吗? 我的路由器文件如下:

  /* ADD REPOSITORY TO APP ROUTER */
  /* ADD REPOSITORY TO APP ROUTER */
  Repository repository;
  AppRouter() {
    repository = new Repository(apiService: ApiService());
  }

  Route generateRoute(RouteSettings settings) {
    switch (settings.name) {
      case "/":
        return MaterialPageRoute(
          settings: RouteSettings(name: '/'),
            builder: (_) => MultiBlocProvider(providers: [
                  BlocProvider<HomeCubit>(
                    create: (BuildContext context) {
                      return HomeCubit(repository: repository);
                    },
                  ),
                  BlocProvider<SearchCubit>(
                    create: (BuildContext context) =>
                        SearchCubit(repository: repository),
                  ),
                  BlocProvider<UserCubit>(
                    create: (BuildContext context) {
                      return UserCubit(repository: repository);
                    },
                  )
                ], child:userToken==null?SplashScreen():NavScreen()
                // SplashScreen()
                ));
                case "/getstarted":
                 return MaterialPageRoute(
           settings: RouteSettings(name: '/getstarted'),
            builder: (_) => BlocProvider(
                create: (BuildContext context) =>
                    ProfileCubit(repository: repository),
                child: OnboardingScreen()));
      //return MaterialPageRoute(builder: (_) => VideoDetailScreen());
      case "/register":
        return MaterialPageRoute(
           settings: RouteSettings(name: '/register'),
            builder: (_) => MultiBlocProvider(providers: [
                  BlocProvider<HomeCubit>(
                    create: (BuildContext context) {
                      return HomeCubit(repository: repository);
                    },
                  ),
                  BlocProvider<SearchCubit>(
                    create: (BuildContext context) =>
                        SearchCubit(repository: repository),
                  ),
                  BlocProvider<UserCubit>(
                    create: (BuildContext context) =>
                        UserCubit(repository: repository),
                  )
                ], child: RegisterScreen()));
      case '/home':
        return MaterialPageRoute(
           settings: RouteSettings(name: '/home'),
            builder: (_) => BlocProvider(
                create: (BuildContext context) =>
                    HomeCubit(repository: repository),
                child: NavScreen()));
      case '/signin':
        return MaterialPageRoute(
            builder: (_) => BlocProvider(
                create: (BuildContext context) =>
                    UserCubit(repository: repository),
                child: SigninScreen()),
                 settings: RouteSettings(name: '/signin'));
      default:
        return MaterialPageRoute(builder: (_) {
          return Scaffold(
            body: Center(
              child: Text('Error! No route Found...',
              style: TextStyle(color: Colors.white,fontWeight:FontWeight.bold),),
            ),
          );
        }
        );
    }
  }
}

最佳答案

Just add settings: settings, to MaterialPageRoute

Page url not changing in flutter, but the page content changes fine

关于flutter - 在 flutter web 中导航回上一页时,URL 路径未更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70562761/

相关文章:

dart - Flutter ListView 项目点击监听器

flutter - 从 dart 中的列表中提取常见元素

sqlite - 如何在SQFlite中插入POJO对象和列表

.htaccess - 利用浏览器缓存 - 更新不起作用

android - 当我在 build.gradle 中打开 flutter 项目红线中的 android 文件夹时出现错误任何想法

android - 我想访问所有应用程序的使用时间。我如何在 flutter 中对此进行编程?

android - 如何在 Flutter 中使用不同色调的色板?

flutter - 在 Flutter 中捕获未处理的异常

javascript - 将图像在 Div 内居中对齐

css - 在按回图像交换位置后,Chrome 中两个 SVG 图像的奇怪行为