动我项目仓库 flutter:3.22 dart:3.4.4
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

45 lines
1.3 KiB

import 'package:dating_touchme_app/pages/home_page.dart';
import 'package:dating_touchme_app/pages/test_page.dart';
import 'package:dating_touchme_app/router/route_paths.dart';
import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
class AppRouter {
AppRouter();
// 根 Navigator(需要时可区分 root / shell 子导航)
final GlobalKey<NavigatorState> _rootKey = GlobalKey<NavigatorState>();
late final GoRouter router = GoRouter(
navigatorKey: _rootKey,
initialLocation: RoutePaths.home,
debugLogDiagnostics: true, // 开发期建议开启
// 统一错误页
errorBuilder: (context, state) => Scaffold(
body: Center(
child: Text('Oops: ${state.error?.toString() ?? 'Page not found'}'),
),
),
routes: [
// 启动/闪屏(或可直接跳 home / login)
GoRoute(
name: RouteNames.home,
path: RoutePaths.home,
builder: (context, state) => const HomePage(),
),
GoRoute(
name: RouteNames.test,
path: RoutePaths.test,
builder: (context, state) {
final a = int.parse(state.uri.queryParameters['a'] ?? '0');
final b = int.parse(state.uri.queryParameters['b'] ?? '0');
return TestPage(a: a, b: b);
},
),
],
);
}