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”的警报
类型 ' $route(currentRoute: any): void; 上不存在属性' 在 Ionic Vue 中
“键盘”类型上不存在打字稿错误属性“hideKeyboardAccessoryBar”。在 IONIC Moodle 应用程序上