路由器出口停用延迟后,Angular 9无法呈现子路由

时间:2020-03-09 21:13:39

标签: angular angular-ui-router angular2-routing angular8 angular9

我目前在一家大公司工作,我们最近将应用程序从Angular 2升级到了Angular9。

我们现在面临的最大问题是路由。我们使用自定义的停用方法为路由器出口连接。此方法类似于默认方法,但是我们添加了一个超时,因此我们可以使所有屏幕切换动画在结束上一条路线之前完成。

RouterOutlet.prototype.deactivate = function() {
if (this.isActivated && !this.component.navAnimation) {
        let destroy = this.activated.destroy;
        let activated = this.activated;
        activated.destroy = () => {
          setTimeout(() => {
            destroy.call(activated);
          }, 600);
        };
      }

      return deactivate.apply(this, arguments);
    };

问题在于,这似乎导致呈现子路线时出现问题。

这是遇到问题的演示路由文件

path: 'parent-path'
component: ParentComponent
children: [
  {
  path: '',
  component: ChildHome
  },
  {
  path: 'details',
  component: Details
  }
]

我在父组件中有一个路由器插座。

此代码适用于Angular 2,但是现在当我们导航到父路径/详细信息时,URL将正确切换(路由跟踪也可以找到路由),但将显示家庭子路由。它与该路由文件无关,特别是因为此问题在许多应用程序中均会发生。

如果我注释超时,动画将看起来很丑陋,但是可以加载子级。

我没有收到任何错误。

如果有人知道为什么此超时导致子路由(不是“默认子”的子路由)无法加载,那就太好了!谢谢!

0 个答案:

没有答案