Angular 2:NavigationCancel - 导航ID 2不等于当前导航ID 3

ada*_*orp 22 angular2-routing angular

我正在尝试将旧网址(电子邮件模板中的链接)从以前的网站重定向到另一条路线,如下所示:

if (route.url.indexOf('/#/') !== -1) {
    this.router.navigate(['/my-route']);
}
Run Code Online (Sandbox Code Playgroud)

但是,导航将被取消,原因如下:

Navigation ID 2 is not equal to the current navigation id 3.

综观角2路由器源,这种情况发生在所述runNavigate方法时id !== this.navigationId(https://github.com/angular/angular/blob/master/modules/@angular/router/src/router.ts#L652).我找不到有关该navigationId属性的任何信息,为什么会发生这种情况以及如何解决它.

在存在的路由之间重定向似乎有效,但不在这些旧的散列标记URL和现有路由之间重定向.路由器中是否必须存在两条路由才能在它们之间进行重定向?

非常感谢帮助.

Sim*_*ggs 25

我收到此错误是因为我快速连续两次调用router.navigate,(1添加queryParams,1添加片段)所以不得不重构我的代码只调用一次导航.