代码之家  ›  专栏  ›  技术社区  ›  Nikul Panchal

ListDetailsPage是2个模块的一部分,请将ListDetailsPage移动到导入AppModule和ListDetailsPage模块的更高模块

  •  6
  • Nikul Panchal  · 技术社区  · 7 年前

    ListDetailsPage is part of the declaration of 2 modules, Please consider moving ListDetailsPage to a higher module that imports AppModule and ListDetailsPageModule ,有谁能帮我解释一下为什么会出现这个错误吗?在这里我添加了我所有的代码,

    1) 应用模块ts

    import { NgModule, ErrorHandler } from '@angular/core';
    import { BrowserModule } from '@angular/platform-browser';
    import { IonicApp, IonicModule, IonicErrorHandler } from 'ionic-angular';
    import { MyApp } from './app.component';
    
    import { AboutPage } from '../pages/about/about';
    import { ContactPage } from '../pages/contact/contact';
    import { HomePage } from '../pages/home/home';
    import { ListPage } from '../pages/list/list';
    import { ListDetailsPage } from '../pages/list-details/list-details';
    import { TabsPage } from '../pages/tabs/tabs';
    
    import { StatusBar } from '@ionic-native/status-bar';
    import { SplashScreen } from '@ionic-native/splash-screen';
    
    import { HttpClientModule } from '@angular/common/http';
    
    @NgModule({
      declarations: [
        MyApp,
        AboutPage,
        ContactPage,
        HomePage,
        ListPage,
        ListDetailsPage,
        TabsPage
      ],
      imports: [
        BrowserModule,
        HttpClientModule,    
        IonicModule.forRoot(MyApp)
      ],
      bootstrap: [IonicApp],
      entryComponents: [
        MyApp,
        AboutPage,
        ContactPage,
        HomePage,
        ListPage,
        ListDetailsPage,
        TabsPage
      ],
      providers: [
        StatusBar,
        SplashScreen,
        {provide: ErrorHandler, useClass: IonicErrorHandler}
      ]
    })
    export class AppModule {}
    

    import { Component } from '@angular/core';
    import { IonicPage, NavController, NavParams } from 'ionic-angular';
    
    import { Observable } from 'rxjs/Observable';
    import { HttpClient } from '@angular/common/http';
    
    /**
     * Generated class for the ListPage page.
     *
     * See https://ionicframework.com/docs/components/#navigation for more info on
     * Ionic pages and navigation.
     */
    
    @IonicPage()
    @Component({
      selector: 'page-list',
      templateUrl: 'list.html',
    })
    export class ListPage {     
    
      list: Observable <any>;
    
      constructor(public navCtrl: NavController, public navParams: NavParams,public httpClient: HttpClient) {
            this.list = this.httpClient.get('https://swapi.co/api/films');
            /*this.list
            .subscribe(data => {
              console.log('my data: ', data);
            })*/  
      }   
    
      openDetails(list) {
        this.navCtrl.push('ListDetailsPage', {list:list});
      }
    
      ionViewDidLoad() {
        console.log('ionViewDidLoad ListPage');
      }
    
    }
    

    3) 列表.details.ts

    import { Component } from '@angular/core';
    import { IonicPage, NavController, NavParams } from 'ionic-angular';
    
    /**
     * Generated class for the ListDetailsPage page.
     *
     * See https://ionicframework.com/docs/components/#navigation for more info on
     * Ionic pages and navigation.
     */
    
    @IonicPage()
    @Component({
      selector: 'page-list-details',
      templateUrl: 'list-details.html',
    })
    export class ListDetailsPage {
      list_detail: any;  
      constructor(public navCtrl: NavController, public navParams: NavParams) {
            this.list_detail = this.navParams.get('list');
      }
    
      ionViewDidLoad() {
        console.log('ionViewDidLoad ListDetailsPage');
      }
    
    }
    

    import { NgModule } from '@angular/core';
    import { IonicPageModule } from 'ionic-angular';
    import { ListPage } from './list';
    
    
    
    @NgModule({
      declarations: [
        ListPage
      ],
      imports: [
        IonicPageModule.forChild(ListPage)
      ],
    })
    export class ListPageModule {}
    

    5) 列表-details.module.ts

    import { NgModule } from '@angular/core';
    import { IonicPageModule } from 'ionic-angular';
    import { ListDetailsPage } from './list-details';
    
    @NgModule({
      declarations: [
        ListDetailsPage,
      ],
      imports: [
        IonicPageModule.forChild(ListDetailsPage),
      ],
    })
    export class ListDetailsPageModule {}
    
    1 回复  |  直到 6 年前
        1
  •  9
  •   Sudarshana Dayananda    7 年前

    此错误的原因是 ListDetailsPage 包含在 declarations list-details.module.ts和app.module.ts的数组。 你应该申报 只有一个地方。 若要修复此错误,请删除 声明 ListDetailsPageModule imports

       @NgModule({
          declarations: [
            MyApp,
            AboutPage,
            ContactPage,
            HomePage,
            ListPage,
            TabsPage
          ],
          imports: [
            ...  
            ListDetailsPageModule 
          ]
        })
        export class AppModule {}