类型 '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”导入
这是因为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”。
我是 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”导入
这是因为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”。