[英]error TS2554: Expected 2 arguments, but got 1
我将我的离子应用程序从 Ionic 3 升级到 Ionic 4,这给我带来了相机问题。 此错误显示在离子服务的控制台上
src/app/register/register.page.ts(50,4) 中的错误:错误 TS2554:预期 2 arguments,但得到 1。[ng] src/app/register/register.page.ts(53,63):错误 TS2749:“相机”引用了一个值,但在此处用作类型。
下面是register.ts
import { Component, ViewChild, OnInit } from '@angular/core';
import { ScrollDetail } from '@ionic/core';
import { NavController, LoadingController, ToastController } from '@ionic/angular';
import { Http, Response, Headers, RequestOptions } from "@angular/http";
import { map } from 'rxjs/operators';
import { Observable } from 'rxjs/Observable';
import { SignaturePad } from 'angular2-signaturepad/signature-pad';
import { Storage } from '@ionic/storage';
import { Camera, CameraOptions } from '@ionic-native/camera';
@Component({
selector: 'app-register',
templateUrl: './register.page.html',
styleUrls: ['./register.page.scss'],
})
export class RegisterPage implements OnInit {
showToolbar = false;
capturedSnapURL:string;
onScroll($event: CustomEvent<ScrollDetail>) {
if ($event && $event.detail && $event.detail.scrollTop) {
const scrollTop = $event.detail.scrollTop;
this.showToolbar = scrollTop >= 225;
}
}
signature = '';
isDrawing = false;
options: CameraOptions = {
quality: 100,
destinationType: this.camera.DestinationType.DATA_URL,
encodingType: this.camera.EncodingType.JPEG,
mediaType: this.camera.MediaType.PICTURE,
cameraDirection:0
}
clickedImagePath:any;
@ViewChild(SignaturePad) signaturePad: SignaturePad;
constructor(public navCtrl: NavController, private camera: Camera, private http: Http, public loading: LoadingController, public storage: Storage, public toastCtrl: ToastController) {
}
ngOnInit() {
}
ionViewDidEnter() {
this.signaturePad.clear()
this.storage.get('savedSignature').then((data) => {
this.signature = data;
});
}
drawComplete() {
this.isDrawing = false;
}
drawStart() {
this.isDrawing = true;
}
savePad() {
this.signature = this.signaturePad.toDataURL();
this.storage.set('savedSignature', this.signature);
this.signaturePad.clear();
/* let toast = this.toastCtrl.create({
message: 'New Signature saved.',
duration: 3000
});
toast.present();*/
}
clearPad() {
this.signaturePad.clear();
}
clickImage(){
this.camera.getPicture(this.options).then((imageData) => {
// imageData is either a base64 encoded string or a file URI
// If it's base64 (DATA_URL):
let base64Image = 'data:image/jpeg;base64,' + imageData;
this.clickedImagePath = 'data:image/jpeg;base64,' + imageData;
}, (err) => {
// Handle error
});
}
}
有人可以指出我做错了什么吗?
你只需要在 app.module.ts 的 providers 数组中包含 Camera
import { Camera } from '@ionic-native/camera';
providers: [
Camera
]
使用它来导入相机插件
import { Camera, CameraOptions } from '@ionic-native/camera/ngx';
并在 HTML 中为 SignaturePad 组件提供一个 Id(例如“componentId”)并将您的视图组件代码更改为以下内容
@ViewChild('componentId', { static: true } ) signaturePad: SignaturePad;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.