我在使用Navigator.pushNamedAndRemoveUntil()
方法时,遇到了RoutePredicate
。
我无法在任何地方找到关于RoutePredicate
的完美解释。
有人能解释一下吗?
我在使用Navigator.pushNamedAndRemoveUntil()
方法时,遇到了RoutePredicate
。
我无法在任何地方找到关于RoutePredicate
的完美解释。
有人能解释一下吗?
谓词是一个函数,它以一个项作为输入并根据该项是否满足某些条件返回true或false。
路由谓词是一种函数,它会删除路由,直到找到具有特定名称的路由。如果谓词返回true,则Navigator.pushNamedAndRemoveUntil()
将停止执行;否则,如果谓词返回false,则将继续删除路由。
要删除推送的路由下面的所有路由,请使用始终返回false的RoutePredicate。
例子-Navigator.of(context)
.pushNamedAndRemoveUntil('/login', (Route<dynamic> route) => false);
在这里使用一个总是返回false的RoutePredicate (Route<dynamic> route) => false
。在这种情况下,它会移除除了新的/login
路由以外所有的路由。
参考 - https://api.flutter.dev/flutter/widgets/Navigator/pushNamedAndRemoveUntil.html
Route<T>
,类型参数T
是路由的返回类型,dynamic
关键字声明了一个可选类型为“dynamic”的变量。它将变量标记为“未经类型检查”。 - Mohit Kushwaha