Маршрутизатор getCurrentNavigation всегда возвращает ноль - программирование

Маршрутизатор getCurrentNavigation всегда возвращает ноль

В последней версии Angular 7.2.6 я пытаюсь передать данные в сам маршрутизатор

this.router.navigate(['other'], {state: {someData: 'qwert'}}

В файле OtherComponent this.router.getCurrentNavigation() всегда возвращает ноль

Stackblitz Link

Angular Docs - getCurrentNavigation

Angular Docs - состояние

4b9b3361

Ответ 1

Вы вызываете метод getCurrentNavigation слишком поздно. Навигация завершена.

Вам нужно вызвать метод getCurrentNavigation внутри конструктора:

constructor(private router: Router) {
    this.name = this.router.getCurrentNavigation().extras.state.example;
}

Или, если вы хотите получить доступ к навигации в ngOnInit, вы можете сделать следующее:

ngOnInit() {
    this.name = history.state.example;
}

Ответ 2

измените код следующим образом, потому что после constructor() вызывается только ngOnInit(), поэтому значение становится нулевым

constructor(private router: Router) {
   this.name = this.router.getCurrentNavigation().extras.state.example;
}