我正在使用的一些代码通过do while循环构建一系列面包屑链接。当ActivatedRoute为null时,循环终止,如下所示:
<div onclick="myFunc">
</div>
更新到Angular 4.4.4和TypeScript 2.5.3后,以下分配不再编译:
constructor(
private router: Router,
private route: ActivatedRoute
) {
this.router.events.filter(event => event instanceof NavigationEnd).subscribe((event) => {
this.breadcrumbs = [];
let currentRoute = this.route.root,
url = '';
do {
const childrenRoutes = currentRoute.children;
currentRoute = null;
childrenRoutes.forEach(route => {
if (route.outlet === 'primary') {
const routeSnapshot = route.snapshot;
url += '/' + routeSnapshot.url.map(segment => segment.path).join('/');
this.breadcrumbs.push({
label: route.snapshot.data,
url: url
});
currentRoute = route;
}
});
} while (currentRoute);
});
其中当前路线为ActivatedRoute。
类型null不能分配给ActivateRoute类型
我已经尝试了
currentRoute = null;
但这又会打破方法的其他部分。所以我不确定我是否应该以更合适的方式解决这些问题或重置ActivatedRoute。
答案 0 :(得分:0)
您可以尝试使用ActivatedRoute | null
,但是除非我有令人信服的理由提出null
的值,否则我通常会回避null
。
尝试使用currentRoute = undefined
。