带有Sqlite的Ionic 4-无法读取未定义TypeError的属性“ then”:无法读取未定义的属性“ then”

时间:2019-01-19 16:08:22

标签: angular sqlite ionic-framework electron

我的数据库没有被创建。当我看到控制台时,它显示以下错误:

  

未捕获(承诺):TypeError:无法读取未定义的属性“ then”   TypeError:无法读取未定义的属性“ then”       在新的首页(home.page.ts:31)

我已经安装了npm install @ionic-native/sqlite@beta --save

下面是我的home.page.ts代码:

import { Component } from '@angular/core';
import { NavController } from '@ionic/angular';
import { SQLite, SQLiteObject } from '@ionic-native/sqlite/ngx';

@Component({
  selector: 'app-home',
  templateUrl: 'home.page.html',
  styleUrls: ['home.page.scss'],
})
export class HomePage {
constructor(public navCtrl: NavController,private sqlite: SQLite){
  this.sqlite.create({
    name: 'ionicdb.db',
    location: 'default'
  })
  .then((db: SQLiteObject) => {
    db.executeSql('CREATE TABLE IF NOT EXISTS expense2(rowid INTEGER PRIMARY KEY, date TEXT, type TEXT, description TEXT, amount INT)', [])
    .then(() => console.log('Executed SQL'))
    .catch(e => console.log(e, 'err'));
  })
  .catch(e => console.log(e)); 
}
}

我已经按照文档进行操作,但不知道为什么仍然存在此错误。

我的项目的ionic info -v供您参考:

ionic (Ionic CLI)             : 4.8.0 (C:\Users\jessica\AppData\Roaming\npm\node_modules\ionic)
   Ionic Framework               : @ionic/angular 4.0.0-rc.1
   @angular-devkit/build-angular : 0.11.4
   @angular-devkit/schematics    : 7.1.4
   @angular/cli                  : 7.1.4
   @ionic/angular-toolkit        : 1.2.2

Cordova:

   cordova (Cordova CLI) : 8.1.2 (cordova-lib@8.1.1)
   Cordova Platforms     : none
   Cordova Plugins       : no whitelisted plugins (2 plugins total)

System:

 (C:\Program Files (x86)\Android\android-sdk)
   NodeJS            : v10.15.0 (C:\Program Files\nodejs\node.exe)
   npm               : 6.0.1
   OS                : Windows 8.1

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。 sqlite自然无法在浏览器中使用。因此,如果您仅安装插件并进行离子服务,则它将无法正常工作。运行以下命令:

ionic cordova platform add browser

然后

ionic cordova run browser

我不得不两次运行第二个命令。对于第一个命令,它不是为我构建的。在此之后,它起作用了。