Маршрутизатор getCurrentNavigation всегда возвращает ноль
В последней версии Angular 7.2.6 я пытаюсь передать данные в сам маршрутизатор
this.router.navigate(['other'], {state: {someData: 'qwert'}}
В файле OtherComponent
this.router.getCurrentNavigation()
всегда возвращает ноль
Stackblitz Link
Angular Docs - getCurrentNavigation
Angular Docs - состояние
Ответы
Ответ 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;
}