Ionic 2 警报组件属性创建在警报类型上不存在

Posted

技术标签:

【中文标题】Ionic 2 警报组件属性创建在警报类型上不存在【英文标题】:Ionic 2 Alert Component property create does not exist on type Alert 【发布时间】:2016-12-23 19:19:42 【问题描述】:

我在我的ionic 2 项目中导入了Alert Component,如下所示:

import Alert  from 'ionic-angular';

用法:

let alert = this.alert.create(
    title: 'New Friend!',
    subTitle: 'Your friend, Obi wan Kenobi, just accepted your friend request!',
      buttons: ['OK']
    );
alert.present();

但我的错误是: Property create does not exist on type Alert.

离子信息:

Cordova CLI: 6.3.0
Gulp version:  CLI version 1.2.1
Gulp local:   Local version 3.9.1
Ionic Framework Version: 2.0.0-beta.10
Ionic CLI Version: 2.0.0-beta.37
Ionic App Lib Version: 2.0.0-beta.20
ios-deploy version: 1.8.6 
ios-sim version: 5.0.8 
OS: Mac OS X El Capitan
Node Version: v5.12.0
Xcode version: Xcode 7.3 Build version 7D175 

我该如何解决?

【问题讨论】:

【参考方案1】:

在我看来,您正在使用一些新模式来创建警报,但是您使用的是 Ionic Framework 10,其中的工作方式有所不同。

您应该将 AlertController 注入构造函数。此外,在导入 Alert 时,它具有新名称 - AlertController

更多关于creating overlays (incluiding alerts) at official Ionic 2 blog的新方式。

编辑:如果您想更新到 Beta 11,只需运行:

npm install --save --save-exact ionic-angular @angular/common@2.0.0-rc.4 @angular/compiler@2.0.0-rc.4 @angular/core@2.0.0-rc.4 @angular/http@2.0.0-rc.4 @angular/platform-browser@2.0.0-rc.4 @angular/platform-browser-dynamic@2.0.0-rc.4 @angular/forms rxjs@5.0.0-beta.6 zone.js@0.6.12

我在更新时遇到了麻烦,得到了 npm WARN 未满足的依赖项,所以我确实在我的 Ionic 目录中重新安装了 npm:

    使用 rm -rf node_modules/ 删除 node_modules/ 运行 npm 缓存清理 再次运行提到的 npm install 命令

您还需要修复 Beta 11 中的其他更改,如 Beta 11 changelog 中所述。更多关于failed npm install due to unmet dependencies的信息。

【讨论】:

对于 beta 10 实现,您在 Alert 类上调用 create...let alert = Alert.create( options ) 并使用 NavController this.navCtrl.present(alert); 呈现它 好的,感谢您的回复,但我如何更新现有项目中的 Ionic 2? @mahmoudismail Beta 11 安装已添加到答案中 @mahmoudismail:您可以在 package.json 中的以下行中更改它:“ionic-angular”:“^2.0.0-beta.11”,然后删除 node_modules 并运行“npm install”。然后不要忘记查看升级到 beta 11 的步骤:github.com/driftyco/ionic/blob/master/… “将 AlertController 注入构造函数”是问题所在,谢谢

以上是关于Ionic 2 警报组件属性创建在警报类型上不存在的主要内容,如果未能解决你的问题,请参考以下文章

带有 Vetur 的 VSCode 中带有 Typescript 的 NativeScript-Vue:在类型“void”上不存在属性“then”的警报

Ionic 2 警报输入调整大小

类型 ' $route(currentRoute: any): void; 上不存在属性' 在 Ionic Vue 中

“键盘”类型上不存在打字稿错误属性“hideKeyboardAccessoryBar”。在 IONIC Moodle 应用程序上

ionic3项目中的'SQLite'类型上不存在错误属性'openDatabase'?

Ionic angular prod 编译器错误属性“md”在类型上不存在