Page has a @IonicPage decorator, but it does not have a corresponding “NgModule”

后端 未结 11 2532
花落未央
花落未央 2020-12-16 11:06

I was working on page navigation in Ionic. After using ionic serve, I got this error:

The Page with .ts extension has a @IonicPage decorator, but

11条回答
  •  余生分开走
    2020-12-16 12:02

    If you want to use deep linking first read the API doc

    and now let look at an example for adding a page with deep linking:

    This is our src folder structure :

    -src
     --app
     --assets
     --pages
        --home
           *home.html
           *home.scss
           *home.ts
     --thems
     *some file we not working with them in here
    

    for adding a page use this command in your app folder :

    $ ionic g page show 
    

    show is page name. and now this is our src folder structure :

    -src
     --app
     --assets
     --pages
        --home
           *home.html
           *home.scss
           *home.ts
        --show
           *show.html
           *show.scss
           *show.ts
     --thems
     *some file we not working with them in here
    

    If now you run your app with below command in your app folder:

    $ ionic serve
    

    you get error like this :

    /path/to/app/src/pages/show/show.ts has a @IonicPage decorator, but it does not have a corresponding "NgModule" at /path/to/app/src/pages/show/show.module.ts

    now you should make file named show.module.ts (in error it says) in show folder then our src folder structure should be like this :

    -src
         --app
         --assets
         --pages
            --home
               *home.html
               *home.scss
               *home.ts
            --show
               *show.html
               *show.scss
               *show.ts
               *show.module.ts
         --thems
         *some file we not working with them in here
    

    and this is the content of show.module.ts file :

    import { NgModule } from '@angular/core';
    import {IonicPageModule} from 'ionic-angular';
    
    import { ShowPage } from './show';
    
    @NgModule({
      declarations: [
        ShowPage
      ],
      imports: [
        IonicPageModule.forChild(ShowPage)
      ],
      entryComponents: [
        ShowPage
      ]
    })
    export class ShowPageModule {}
    

    Done. run your app with ionic serve and the error is gone.

    You can navigate to your new page with

    goToMyPage() {
        // go to the ShowPage component
        this.navCtrl.push('ShowPage');
      }
    

    see doc for navigation.

提交回复
热议问题