Cannot read property 'navigate' of undefined error

Viewed 31489

below is my code for navigation

         export class AppComponent {
           router:Router
            doSwipe(direction: string){

               this.router.navigate(['/article']);
            }
       }

I am getting Cannot read property 'navigate' of undefined error.pls help to fix it

5 Answers

You need to inject the router, not just declare it as a property

constructor(private router: Router) {}

In my case, I injected the router inside the constructor using the @Inject annotation.

constructor(@Inject(Router) private router: Router) {}

You need to inject Router in constructor:

export class AppComponent {
    constructor(
        private router: Router
    ) {}

    doSwipe(direction: string) {

        this.router.navigate(['/article']);
    }
}

You need to inject the router inside the constructor,

constructor(
     private router: Router
){

}

A bit old, but in my case I had Fabio answer, but forgot to add @autoInject()

so you have to add

import { autoinject } from 'aurelia-framework';

@autoinject()
export class YourClass {
     
     constructor(private router: Router) {}

}
Related