소스 검색

Pass custom RouteSettings with FluroRouter.navigateTo

lukepighetti 5 년 전
부모
커밋
acfa580547
1개의 변경된 파일7개의 추가작업 그리고 2개의 파일을 삭제
  1. 7 2
      lib/src/fluro_router.dart

+ 7 - 2
lib/src/fluro_router.dart

@@ -47,11 +47,13 @@ class FluroRouter {
       bool clearStack = false,
       bool clearStack = false,
       TransitionType transition,
       TransitionType transition,
       Duration transitionDuration = const Duration(milliseconds: 250),
       Duration transitionDuration = const Duration(milliseconds: 250),
-      RouteTransitionsBuilder transitionBuilder}) {
+      RouteTransitionsBuilder transitionBuilder,
+      RouteSettings routeSettings}) {
     RouteMatch routeMatch = matchRoute(context, path,
     RouteMatch routeMatch = matchRoute(context, path,
         transitionType: transition,
         transitionType: transition,
         transitionsBuilder: transitionBuilder,
         transitionsBuilder: transitionBuilder,
-        transitionDuration: transitionDuration);
+        transitionDuration: transitionDuration,
+        routeSettings: routeSettings);
     Route<dynamic> route = routeMatch.route;
     Route<dynamic> route = routeMatch.route;
     Completer completer = Completer();
     Completer completer = Completer();
     Future future = completer.future;
     Future future = completer.future;
@@ -104,6 +106,9 @@ class FluroRouter {
     if (routeSettings == null) {
     if (routeSettings == null) {
       settingsToUse = RouteSettings(name: path);
       settingsToUse = RouteSettings(name: path);
     }
     }
+    if (routeSettings.name == null) {
+      settingsToUse = settingsToUse.copyWith(name: path);
+    }
     AppRouteMatch match = _routeTree.matchRoute(path);
     AppRouteMatch match = _routeTree.matchRoute(path);
     AppRoute route = match?.route;
     AppRoute route = match?.route;
     Handler handler = (route != null ? route.handler : notFoundHandler);
     Handler handler = (route != null ? route.handler : notFoundHandler);