`RouteAware`-实现者取消订阅任何以前的依赖项?
`RouteAware`-implementer unsubscribe from any previous dependency?
以下片段来自 RouteObserver
的 Flutter 文档:
@override
void didChangeDependencies() {
super.didChangeDependencies();
routeObserver.subscribe(this, ModalRoute.of(context));
}
@override
void dispose() {
routeObserver.unsubscribe(this);
super.dispose();
}
我不明白为什么 didChangeDependencies
也不包括 routeObserver.unsubscribe(this)
。
RouteAware
-实施者不应该取消订阅任何以前的依赖项吗?
这是安全的,因为如果 this
已经在订阅者列表中,则 subscribe
的实施不会执行任何操作。
以下片段来自 RouteObserver
的 Flutter 文档:
@override
void didChangeDependencies() {
super.didChangeDependencies();
routeObserver.subscribe(this, ModalRoute.of(context));
}
@override
void dispose() {
routeObserver.unsubscribe(this);
super.dispose();
}
我不明白为什么 didChangeDependencies
也不包括 routeObserver.unsubscribe(this)
。
RouteAware
-实施者不应该取消订阅任何以前的依赖项吗?
这是安全的,因为如果 this
已经在订阅者列表中,则 subscribe
的实施不会执行任何操作。