离子2错误中的本地存储



我尝试在我的离子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
  ]
...

由于离子2.2.0,建议使用 @ionic/storage版本2.0.0。自上一个版本以来,App.Modules.ts中的配置已更改。如果您没有以正确的方式更改所有内容,则会发生错误。

在app.modules.ts中进行以下更改:

  1. 从提供商中删除存储
  2. 更改导入语句:

    来自:import { Storage } from '@ionic/storage';

    to: import { IonicStorageModule } from '@ionic/storage';

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

    IonicStorageModule.forRoot()

导入数组应如下所示:

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



注意:不要在任何其他文件中更改存储的进口。

您的 app.module.ts 应该看起来像,

import { Storage } from '@ionic/storage';
export function provideStorage() {
  return new Storage(['sqlite', 'websql', 'indexeddb'], { name: 'database_name' });
}
@NgModule({
  declarations: [
  ],
  imports: [
    IonicModule.forRoot(MyApp)
  ],
  bootstrap: [IonicApp],
  entryComponents: [
  ],
  providers: [
    { provide: Storage, useFactory: provideStorage }, Storage
  ]
})

您必须使用 set() get()方法来存储和检索数据中的数据。请查看具有示例视频的离子2存储教程博客。希望这有帮助

相关内容

  • 没有找到相关文章

最新更新