onBefore method

  1. @override
Future<GuardResult> onBefore(
  1. RouteContext context
)
override

Called before navigation to the route.

Return next to continue navigation, or redirect/abort to stop.

Example:

@override
Future<GuardResult> onBefore(RouteContext context) async {
  if (!await hasPermission()) {
    return redirect('/unauthorized');
  }
  return next();
}

Implementation

@override
Future<GuardResult> onBefore(RouteContext context) async {
  if (!condition(context)) {
    return next();
  }
  guard.setRouteContext(context);
  final result = await guard.onBefore(context);
  if (guard.redirectConfig != null) {
    _redirectConfig = guard.redirectConfig;
  }
  if (guard.hasModifiedData) {
    setData(guard.modifiedData);
  }
  return result;
}