Angular 6 错误 : Cannot activate an already activated outlet Error

标签 angular rxjs

当对 observable 的订阅调用抛出错误时,我想将用户重定向到自定义错误页面。 router.navigateByUrl('errorpage') 我收到以下错误: 错误错误:未捕获( promise ):错误:无法激活已激活的 socket 错误:无法激活已激活的 socket 谢谢。

最佳答案

试试这个

@ViewChild(RouterOutlet) outlet: RouterOutlet;

constructor(
    private router: Router
) { }

ngOnInit(): void {
    this.router.events.subscribe(e => {
        if (e instanceof ActivationStart && e.snapshot.outlet === "errorpage")
            this.outlet.deactivate();
    });
}

引用:https://github.com/angular/angular/pull/20712

关于 Angular 6 错误 : Cannot activate an already activated outlet Error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52784161/

相关文章:

javascript - Angular 6 使用管道将字符串转换为 Html

angular - APP_INITIALIZER 在与重定向的自定义 Http 提供程序一起使用时引发 "Cannot instantiate cyclic dependency! ApplicationRef_"

css - 更改 Angular 上垫平按钮的边框半径

unit-testing - 对使用 RxJs 主题的 Angular2 服务进行单元测试

javascript - 将数组拆分为 block / block 并对其进行一一操作

angular - ASP.net Core 中的加密和 Angular 中的解密

javascript - *ngFor 循环与异步管道和热套接字连接可观察?

angular - 你如何使用 Observable.bindCallback()

angular - 类型 'map' 中缺少属性 'Observable<any[]>'

angular - Observable 查找嵌套属性