疑问
来源:5-4 Flutter新版路由和导航系统实战(一)

AKIRA晓
2023-11-29
没懂这种写法
BiliRoutePath.home():location = “/”;
BiliRoutePath.detail():location = “/detail”;
这是申明了home和detail了么 后面的冒号怎么理解
还有这个
BiliRouteDelegate():navigationKey = GlobalKey();
还有就是那个 ChangeNotifier和PopNavigatorRouterDelegateMixin 这两都是干什么的也不明白
1回答
-
CrazyCodeBoy
2023-11-30
在Dart中,`BiliRouteDelegate():navigationKey = GlobalKey();` 是构造函数的初始化列表(initializer list)的一部分。这里使用了冒号(`:`)来初始化 `BiliRouteDelegate` 类的实例。具体来说,它创建了一个名为 `navigationKey` 的成员变量,并使用 `GlobalKey()` 初始化它。这通常用于在构造函数之前为对象的成员变量赋初值。
至于`ChangeNotifier` 和 `PopNavigatorRouterDelegateMixin`,它们属于Flutter框架中的一些类和混入(mixin)用于状态管理和导航。
- **ChangeNotifier**: 是Flutter中用于实现"观察者"模式的一个类,通常与`Provider`一起使用。当使用`ChangeNotifier`时,当对象发生变化时,可以通知监听者进行更新。
- **PopNavigatorRouterDelegateMixin**: 是一个混入(mixin),用于实现路由的委托(delegate)。在Flutter中,导航通常使用`Navigator`进行管理,而`PopNavigatorRouterDelegateMixin`则提供了一些便捷的方法,特别是处理导航栈的弹出(pop)操作。012023-11-30
相似问题