关于 Navigator 导航框架
来源:5-7 基于全新Navigator封装易用的导航框架(二)

这个人有点冷
2021-10-01
所有的路由逻辑都在 BiliRouterDelegate build 中,那如果不光这几个页面,多达100个呢?
if (routeStatus == RouteStatus.home) {
// 跳转首页时将其它页面进行出栈
// 清空堆栈
pages.clear();
// 创建首页
page = pagePack(HomePage(
onJumpToDetail: (articleModel) {
this.articleModel = articleModel;
notifyListeners(); // 通知 Router 重建 RouterDelegate(通过 build() 方法)
},
));
} else if (routeStatus == RouteStatus.detail) {
page = pagePack(DetailPage(articleModel: articleModel!));
} else if (routeStatus == RouteStatus.login) {
page = pagePack(LoginPage());
} else if (routeStatus == RouteStatus.register) {
page = pagePack(RegisterPage());
} else if (routeStatus == RouteStatus.splash) {
page = pagePack(SplashPage());
}
RouteStatus getStatus(MaterialPage page) {
if (page.child is SplashPage) {
return RouteStatus.splash;
} else if (page.child is HomePage) {
return RouteStatus.home;
} else if (page.child is LoginPage) {
return RouteStatus.login;
} else if (page.child is RegisterPage) {
return RouteStatus.register;
} else if (page.child is DetailPage) {
return RouteStatus.detail;
} else {
return RouteStatus.unknown;
}
}
类似这种代码就会越来越多。
这种问题怎么解决呢?
写回答
2回答
-
CrazyCodeBoy
2021-10-09
是的。
00 -
CrazyCodeBoy
2021-10-08
对于只需要简单跳转的页面可以直接push,不用配置在这里哦。
012021-10-08
相似问题