在Flutter中,“路由谓词”是什么意思?

6

我在使用Navigator.pushNamedAndRemoveUntil()方法时,遇到了RoutePredicate

我无法在任何地方找到关于RoutePredicate的完美解释。

有人能解释一下吗?

1个回答

6

谓词是一个函数,它以一个项作为输入并根据该项是否满足某些条件返回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


什么是“dynamic”的含义,为什么我们要添加它? - Aditya Dixit
@AdityaDixit Route<T>,类型参数T是路由的返回类型, dynamic关键字声明了一个可选类型为“dynamic”的变量。它将变量标记为“未经类型检查”。 - Mohit Kushwaha

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接