疑问

来源: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)操作。

0
1
AKIRA晓
原来如此
2023-11-30
共1条回复

Flutter高级进阶实战-仿哔哩哔哩-掌握Flutter高阶技能

一次性掌握Flutter高阶技能+商业级复杂项目架构设计与开发方案

1722 学习 · 870 问题

查看课程