web-dev-qa-db-fra.com

Angular2 - Les paramètres fournis ne correspondent à aucune signature de la cible d'appel

import { Component, Input, OnChanges } from '@angular/core';

@Component({
  selector: 'image-display',
  templateUrl: './image-display.component.html'
})
export class ImageDisplayComponent implements OnChanges {
  @Input() image: File;
  @Input() imagePath?: string;

  private fileReader: FileReader;

  constructor() { }

  ngOnChanges() {
    if (this.image && this.fileReader) {
      this.fileReader.readAsDataURL(this.image);
    }
  }
}

En compilant cela avec AOT en dessous de l'erreur:

PRINHYLTPAP0592:matata ajays$ ng build --prod --aot
/myApp/src/$$_gendir/app/image-uploader/image-display/image-display.component.ngfactory.ts (61,9): 
Supplied parameters do not match any signature of call target.
9
Ajay

AOT vous oblige à informer chaque paramètre obligatoire unique pour chaque appel de méthode.

Dans votre exemple, la méthode ngOnChanges () doit en fait être ngOnChanges (changes: SimpleChanges).

22
Pedro Penna

S'il y a un décalage entre la méthode qui est appelée à partir de html et la définition de la méthode dans le composant, nous voyons cette erreur.

principalement le décalage dans le nombre de paramètres passés à la méthode lors de l'appel.

Je passais $ event dans la méthode onModelChange, qui n'est pas décalée dans la définition de la méthode.

dropdownChanged(){
  console.log("dropdown changed");
}
dropdownChangedActual(evnt:any){
  console.log("dropdown changed");
}
<select [(ngModel)]="myModel" (ngModelChange)="dropdownChanged($event)">
     <option>.............</option>
</select>

Soit déclarer $ event ou tout paramètre que nous transmettons, soit transmettre les paramètres comme indiqué dans la définition de la méthode.

2
Swagath

veuillez fournir le code du fichier image-display.component.html. il se peut que la variable du modèle ne soit pas initialisée sur le composant. Vérifiez toutes les variables que vous avez utilisées sur le modèle si elles existent sur ImageDisplayComponent.

2
doyevaristo