In the latest version of Angular 7.2.6, I'm trying to pass data in router itself
this.router.navigate(['other'], {state: {someData: 'qwert'}}
In the OtherComponent
file, this.router.getCurrentNavigation()
always return null
Stackblitz Link
Angular Docs - getCurrentNavigation
Angular Docs - state
You're calling the method getCurrentNavigation
too late. The navigation has finished.
You need call the getCurrentNavigation
method inside of the constructor:
constructor(private router: Router) {
this.name = this.router.getCurrentNavigation().extras.state.example;
}
Or if you want to access the navigation in ngOnInit
you can do following:
ngOnInit() {
this.name = history.state.example;
}
change the code like this because after constructor()
only the ngOnInit()
gets called so the value is getting null
constructor(private router: Router) {
this.name = this.router.getCurrentNavigation().extras.state.example;
}