web-dev-qa-db-fra.com

ne peut pas résoudre tous les paramètres pour [objet OBJECT], après le service ionique

je ne sais pas ce que je fais de mal, mais lorsque j'essaie d'utiliser des plug-ins ionique et Cordova, l'erreur suivante s'affiche après le service ionique: "impossible de résoudre tous les paramètres de [objet OBJECT], [objet OBJECT], [objet OBJECT], [objet OBJET], [objet OBJECT] ,? " 

import { Component, Injectable } from '@angular/core';
import { NavController } from 'ionic-angular';
import { ToastController } from 'ionic-angular';
import { File } from '@ionic-native/file';
import { Diagnostic } from '@ionic-native/diagnostic';
import { CameraPreview, CameraPreviewOptions, CameraPreviewDimensions} from '@ionic-native/camera-preview';
declare var cordova: any;

@Component({
  selector: 'page-home',
  templateUrl: 'home.html',
  providers: [CameraPreview, Diagnostic]
})
export class HomePage {

  constructor(
    public navCtrl: NavController,
    public toastCtrl: ToastController,
    public file:File,
    public diagnostic:Diagnostic,
    public cameraPreview: CameraPreview,
    public previewRect: CameraPreviewOptions
    ) {
    this.checkPermissions();
  }
6
J.Rem

J'ai eu le même problème quelque part, alors j'ai supprimé le dernier paramètre de constructeur et je l'ai donné avant constructeur Dans ton cas comme ça,

export class HomePage {

 public previewRect: CameraPreviewOptions;

 constructor(
  public navCtrl: NavController,
  public toastCtrl: ToastController,
  public file:File,
  public diagnostic:Diagnostic,
  public cameraPreview: CameraPreview   
 ) {
  this.checkPermissions();
 }
}

Je ne sais pas si c'est la bonne solution mais j'ai résolu mon problème.

4
Iris_geek

Il s'agit d'un problème de dépendance angulaire moins connu, où le compilateur est incapable de démêler l'arbre de dépendance.

La solution consiste à utiliser @Inject avec les déclarations.

export class HomePage {

  constructor(
    public navCtrl: NavController,
    public toastCtrl: ToastController,
    public file:File,
    public diagnostic:Diagnostic,
    @Inject(CameraPreview) public cameraPreview: CameraPreview   
  ) {
    this.checkPermissions();
  }
}

Avec cela, vous dites au compilateur que la classe manquante sera injectée ultérieurement.

En outre, il est important de dire que CameraPreview devrait lui-même être décoré avec @Injectable().

@Injectable()
export class CameraPreview
  // ... your code
}
0
Miroslav Jonas