to<T> method

Future<T> to<T>(
  1. Widget page,
  2. {bool opaque,
  3. Transition transition,
  4. Curve curve,
  5. Duration duration,
  6. int id,
  7. bool fullscreenDialog = false,
  8. dynamic arguments,
  9. Bindings binding,
  10. bool preventDuplicates = true,
  11. bool popGesture}
)

Navigation.push() shortcut.

Pushes a new page to the stack

It has the advantage of not needing context, so you can call from your business logic

You can set a custom transition, and a transition duration.

You can send any type of value to the other route in the arguments.

Just like native routing in Flutter, you can push a route as a fullscreenDialog,

id is for when you are using nested navigation, as explained in documentation

If you want the same behavior of ios that pops a route when the user drag, you can set popGesture to true

If you're using the Bindings api, you must define it here

By default, GetX will prevent you from push a route that you already in, if you want to push anyway, set preventDuplicates to false

Implementation

Future<T> to<T>(
  Widget page, {
  bool opaque,
  Transition transition,
  Curve curve,
  Duration duration,
  int id,
  bool fullscreenDialog = false,
  dynamic arguments,
  Bindings binding,
  bool preventDuplicates = true,
  bool popGesture,
}) {
  var routeName = "/${page.runtimeType.toString()}";
  if (preventDuplicates && routeName == currentRoute) {
    return null;
  }
  return global(id)?.currentState?.push(
        GetPageRoute(
          opaque: opaque ?? true,
          page: () => page,
          routeName: routeName,
          settings: RouteSettings(
            //  name: forceRouteName ? '${a.runtimeType}' : '',
            arguments: arguments,
          ),
          popGesture: popGesture ?? defaultPopGesture,
          transition: transition ?? defaultTransition,
          curve: curve ?? defaultTransitionCurve,
          fullscreenDialog: fullscreenDialog,
          binding: binding,
          transitionDuration: duration ?? defaultTransitionDuration,
        ),
      );
}