android - ionic 2错误中的本地存储

标签 android ios cordova ionic2

我尝试在我的 Ionic 2 应用程序中使用它: https://ionicframework.com/docs/v2/storage/

我已经跑了

cordova plugin add cordova-sqlite-storage --save

npm install --save @ionic/storage

成功。

当我尝试在我的 app.module.ts 中添加存储时,我遇到了这个错误:

Error: Can't resolve all parameters for Storage: (?).
    at v (http://localhost:8100/build/polyfills.js:3:4864)
    at SyntaxError.BaseError [as constructor] (http://localhost:8100/build/main.js:127193:27)
    at new SyntaxError (http://localhost:8100/build/main.js:11660:16)
    at CompileMetadataResolver._getDependenciesMetadata (http://localhost:8100/build/main.js:27183:31)
    at CompileMetadataResolver._getTypeMetadata (http://localhost:8100/build/main.js:27058:26)
    at CompileMetadataResolver._getInjectableMetadata (http://localhost:8100/build/main.js:27046:21)
    at CompileMetadataResolver.getProviderMetadata (http://localhost:8100/build/main.js:27288:40)
    at http://localhost:8100/build/main.js:27246:49
    at Array.forEach (native)
    at CompileMetadataResolver._getProvidersMetadata (http://localhost:8100/build/main.js:27213:19)
    at CompileMetadataResolver.getNgModuleMetadata (http://localhost:8100/build/main.js:26897:50)
    at JitCompiler._loadModules (http://localhost:8100/build/main.js:72991:64)
    at JitCompiler._compileModuleAndComponents (http://localhost:8100/build/main.js:72951:52)
    at JitCompiler.compileModuleAsync (http://localhost:8100/build/main.js:72917:21)
    at PlatformRef_._bootstrapModuleWithZone (http://localhost:8100/build/main.js:52753:25)

我不明白我该怎么做才能解决它。

我的 app.module.ts :

import { Storage } from '@ionic/storage';
...

providers: [
    {provide: ErrorHandler, useClass: IonicErrorHandler},
    PData,
    PBackground,
    PTranslate,
    Storage
  ]

...

最佳答案

从Ionic 2.2.0开始,推荐使用@ionic/storage 2.0.0版本。 app.modules.ts 中的配置自上一版本以来发生了变化。如果您没有以正确的方式更改所有内容,则会发生错误。

在 app.modules.ts 中做以下更改:

  1. 从供应商那里移除存储
  2. 更改导入语句:

    来自:从“@ionic/storage”导入{存储};

    到:从'@ionic/storage'导入{IonicStorageModule};

  3. 将以下内容添加到导入数组:

    IonicStorageModule.forRoot()

导入数组应该如下所示:

imports: [
  IonicModule.forRoot(MyApp),
  IonicStorageModule.forRoot()
],



注意:不要在任何其他文件中对 Storage 的导入进行任何更改。

关于android - ionic 2错误中的本地存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42788623/

相关文章:

安卓自定义toast : TextColor set to black but has red shadow

ios - 从特定位置读取特定长度的数据ios

ios - 允许 MasterDetail 页面将主页面放在 Xamarin.forms 的右侧

android - 适用于手机的 Google Maps API 夜间主题

android - 如何使用 Phonegap 将平台添加到项目中

android - java.lang.NullPointerException 在 android.webkit.WebViewClassic.setBaseLayer(WebViewClassic.java :5377)

java - Android屏幕坐标到 Canvas View 坐标

android - HttpClient 未从远程站点填写输入框

javascript - 如何停止或防止向左或向右滑动事件?

android - 在 cordova 应用程序中使用 native 代码