Sim*_*mon 6 mobile-application ionic-framework ionic-native ionic4
我正在Ionic 4中设置新警报-空白类型:角度项目。这是基本警报,但是我在运行项目时遇到错误。
属性“ present”在类型“ Promise”上不存在。您忘了使用“等待”吗?
我创建与文档中相同的代码。链接:https://ionicframework.com/docs/api/components/alert/AlertController/
我的代码:
import { AuthenticationService } from './../../services/authentication.service';
import { Component, OnInit } from '@angular/core';
import { AlertController, LoadingController, NavController } from
'@ionic/angular';
@Component({
selector: 'app-register',
templateUrl: './register.page.html',
styleUrls: ['./register.page.scss'],
})
export class RegisterPage implements OnInit {
createSuccess = false;
registerCredentials = { email: '', password: '' };
constructor(
private nav: NavController,
private auth: AuthenticationService,
private alertCtrl: AlertController) { }
ngOnInit() {
}
presentAlert() {
const alert = this.alertCtrl.create({
message: 'Low battery',
subHeader: '10% of battery remaining',
buttons: ['Dismiss']
});
alert.present(); <--- error Property 'present' does not exist on type 'Promise<HTMLIonAlertElement>'. Did you forget to use 'await'?
}
public register() {
this.auth.register(this.registerCredentials).subscribe(success => {
if (success) {
this.createSuccess = true;
this.showPopup('Success', 'Account created.');
} else {
this.showPopup('Error', 'Problem creating account.');
}
},
error => {
this.showPopup('Error', error);
});
}
Run Code Online (Sandbox Code Playgroud)
应该起作用的showPopup函数。
showPopup(title, text) {
let alert = this.alertCtrl.create({
message: title,
subHeader: text,
buttons: [
{
text: 'OK'
}
]
});
alert.present(); <-- the same error
}
Run Code Online (Sandbox Code Playgroud)
Sur*_*Rao 14
您正在使用的文件是指ionic 3
当你使用离子4,你需要参考目前的离子4 文档与此。
this.alertController.create({...})
Run Code Online (Sandbox Code Playgroud)
返回错误所指定的对象的Promise。
您的代码必须是:
async presentAlert() {
const alert = await this.alertCtrl.create({
message: 'Low battery',
subHeader: '10% of battery remaining',
buttons: ['Dismiss']
});
await alert.present();
}
Run Code Online (Sandbox Code Playgroud)
由于警报控制器的 create 方法返回承诺,这就是您不能直接使用 present 方法的原因。您需要做的是“然后使用”并调用如下所示的当前方法-
presentAlert() {
const alert = this.alertCtrl.create({
message: 'Low battery',
subHeader: '10% of battery remaining',
buttons: ['Dismiss']}).then(alert=> alert.present());
}
Run Code Online (Sandbox Code Playgroud)
希望它会有所帮助:)。
| 归档时间: |
|
| 查看次数: |
11986 次 |
| 最近记录: |