web-dev-qa-db-fra.com

Erreur: aucune fabrique de composants trouvée. L'avez-vous ajouté à @ NgModule.entryComponents?

J'essaie de créer un popover sur ma page d'accueil, j'ai donc créé la fonction suivante.

public presentPopover(myEvent) {
    let popover = this.popoverCtrl.create(TestComponent);
    popover.present({
      ev: myEvent
    });
  }

dans mon homepage.module.ts j'ai ajouté testComponent comme composant d'entrée.

import { TestModule } from './../../components/test/test.module';
import { NgModule } from '@angular/core';
import { IonicPageModule } from 'ionic-angular';
import { HomePage } from './home';
import { TestComponent } from './../../components/test/test';

@NgModule({
  declarations: [
    HomePage,
  ],
  imports: [
    TestModule,
    IonicPageModule.forChild(HomePage),
  ],
  entryComponents: [
    TestComponent,
  ]
})

Mais je reçois toujours cette erreur lorsque je clique sur ce bouton popover.

ERROR Error: Uncaught (in promise): Error: No component factory found for TestComponent. Did you add it to @NgModule.entryComponents?
Error: No component factory found for TestComponent. Did you add it to @NgModule.entryComponents?
    at noComponentFactoryError (core.js:3786)
    at CodegenComponentFactoryResolver.resolveComponentFactory (core.js:3850)
    at PopoverCmp._load (popover-component.js:41)
    at PopoverCmp.ionViewPreLoad (popover-component.js:33)

Et je ne comprends pas pourquoi devrais-je ajouter ceci à l'entrée Composants?

7
CuriousAboutThings

Vous devez ajouter des composants créés dynamiquement aux composants d'entrée dans votre @NgModule

@NgModule({
  ...
  declarations: [
    ...
    Name of your component,
  ],
  entryComponents: [
    ...
    Name of your component,    
  ]
})

Remarque: Dans certains cas, les composants d'entrée sous des modules chargés paresseusement ne fonctionneront pas, car une solution de contournement les a mis dans votre app.module (root)

10
arun kumar