类型 'SQLiteOriginal' 不可分配给类型 'Provider'

Type 'SQLiteOriginal' is not assignable to type 'Provider'

我是 Ionic 4 的新手,正在尝试让 SQLite 正常工作。我已经添加了 cordova 插件和 ionic native sqlite 但是当我尝试在应用程序模块中设置它时出现上述错误。这是我的应用程序,module.ts

import { IonicModule, IonicRouteStrategy } from '@ionic/angular';
import { SplashScreen } from '@ionic-native/splash-screen/ngx';
import { StatusBar } from '@ionic-native/status-bar/ngx';

import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';

import { IonicStorageModule } from '@ionic/storage';
import { SQLite } from '@ionic-native/sqlite';


@NgModule({
  declarations: [AppComponent],
  entryComponents: [],
  imports: [BrowserModule, IonicModule.forRoot(), IonicStorageModule.forRoot(), AppRoutingModule],
  providers: [
    StatusBar,
    SplashScreen,
    SQLite,
    { provide: RouteReuseStrategy, useClass: IonicRouteStrategy }
  ],
  bootstrap: [AppComponent]
})
export class AppModule {}

有人能帮忙吗?

这似乎与最近发布的 Ionic 4 有关。我 运行 在我的应用程序中 @ionic-native/file 解决了这个问题。如果您在发布后安装而没有指定您想要的版本,您可能得到的是最新版本或测试版。

我能够通过修改我的 package.json 以反映所需的版本回滚到早期版本来修复它 -- 我安装了 5.0.0 并回滚到 4.20.0 .如果您有 VSCode 的 VersionLens,它将显示最低和最新版本。

然后,清除您的节点模块,然后重新安装:

rm -rf node_modules/
npm install

还有一个 post 打开这个,在这里可用:

您必须从“@ionic-native/sqlite/ngx”导入

https://ionicframework.com/docs/native

这是因为ionic 4的新更新。

您必须将 /ngx 添加到插件的导入中。像这样:

import { PluginName} from '@ionic-native/pluginName/ngx';

否则回退到 ionic v4.

导入:

import { SQLitePorter } from '@ionic-native/sqlite-porter/ngx';
import { SQLite } from '@ionic-native/sqlite/ngx';

并添加到提供商中:

providers: [
   SQLite,
   SQLitePorter
]

如果您从不同的路径导入它们,通常会发生这种情况。

凡是引入原生插件的地方,都需要加上/ngx/。

而且这个必须贯穿整个项目,不然还是会报错

错误示例:

import {Market} from '@ionic-native/market';

真实例子:

import {Market} from '@ionic-native/market/ngx';

您必须在 app.module.ts 和您要使用它的页面上都导入“@ionic-native/sqlite/ngx”。