I am taking the current URL with the router using the below code
this.router.events.subscribe(event => {
if (event instanceof NavigationEnd) {
this.currentRoute = event.url;
}
});
then im passing the currentRoute to a child component via @Input
<app-actions *ngIf="currentRoute" [currentRoute]="currentRoute"></app-actions>
in my child Component im taking the @Input() currentRoute: string;
issue is that the first time the component is rendered the currentRoute
is visible but on any next URL change the Router Observable does not provide me with the latest value in the child component.
Any ideas?
CodePudding user response:
The Input
does change, you're just not listening to it in the app-actions
. In your child component, use the ngOnChanges
life cycle hook like this
ngOnChanges(changes: SimpleChanges): void {
console.log(changes);
}
Perform a re-assign operation within your app-actions
component i.e., this.currentRoute = changes.currentRoute.currentValue
and you're good