Angular 7 - 多个插座:错误:无法激活已激活的插座

问题描述 投票:0回答:1

这是我与Angular 7遇到的问题:

我有两个出口:主应用路由器插座和名为'管理'的辅助插座。

当我想在开始时浏览任何管理链接时,它工作正常。但是下次,当我尝试导航时,angular会抛出此错误消息:

错误:无法激活已激活的插座

那么,有人能解释我为什么吗?我在论坛上找不到任何解决方案......

这是一个stackblitz:https://stackblitz.com/edit/angular-osnnd4

谢谢大家:)

angular7 children router-outlet routerlink
1个回答
0
投票

延迟加载子路由时会出现此问题。每次更改路线时都必须手动停用插座。

我已修改您的AdministrationComponent以解决方法如下。它应该能够立即工作,直到Angular有办法解决问题。

import { Component, OnInit, ViewChild } from '@angular/core';
import { RouterOutlet, Router, ActivationStart } from '@angular/router';

@Component({
  selector: 'app-administration',
  templateUrl: './administration.component.html',
  styleUrls: ['./administration.component.css']
})
export class AdministrationComponent implements OnInit {

  @ViewChild(RouterOutlet) outlet: RouterOutlet;

  constructor(
    private router: Router
  ) { }

  ngOnInit(): void {
    this.router.events.subscribe(e => {
      if (e instanceof ActivationStart && e.snapshot.outlet === "administration")
        this.outlet.deactivate();
    });
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.