pushRemoveUntil<T extends Object?, TO extends Object?> function

Future<T?> pushRemoveUntil<T extends Object?, TO extends Object?>(
  1. String path,
  2. RoutePredicate predicate, {
  3. Map<String, String?>? query,
  4. Map<String, Object?>? body,
  5. BuildContext? context,
})

push一个路由并弹出指定路由

query是一个只有字符串键值对的Map, 直接拼接在路径后面, 这样可以在web环境下保持状态 body可以为任意对象, 但是不能在不同会话之间保持(比如web端的刷新)

Implementation

Future<T?> pushRemoveUntil<T extends Object?, TO extends Object?>(
  String path,
  RoutePredicate predicate, {
  Map<String, String?>? query,
  Map<String, Object?>? body,
  BuildContext? context,
}) {
  final navigator = gNavigatorKey.currentState ?? context?.navigator;
  if (navigator == null) throw _kNoNav;

  return navigator.pushNamedAndRemoveUntil(
    _routeName(path, query),
    predicate,
    arguments: body,
  );
}