db.createIndex不是函数

时间:2017-07-18 17:51:20

标签: angular pouchdb ionic3

我正在使用Ionic 3,Angular 4,Pouchdb,Pouchdb-find Pouchdb工作正常。 我已经通过npm

安装了pouchdb和pouchdb-find

重现的步骤

NPM

ionic start testapp
npm install pouchdb
npm install pouchdb-find
ionic serve -l

这里是使用空白离子3模板的组件简介

import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
import { Http } from '@angular/http';
import 'rxjs/add/operator/map';
import PouchDB from 'pouchdb';
declare var require: any;


@Component({
  selector: 'page-home',
  templateUrl: 'home.html'
})
export class HomePage {

  constructor(public navCtrl: NavController) {


    PouchDB.plugin(require('pouchdb-find'));

    var db = new PouchDB('pillsalarm3');

    db.createIndex({
      index: {fields: ['type']}
    });
  }           
}

当我跑步时,我收到此错误:

  

未捕获(在promise中):TypeError:db.createIndex不是函数TypeError:db.createIndex不是createClass(http://localhost:8101/build/main.js:57:12)at new HomePage(http://localhost:8101/build/vendor.js:11251:26)处的函数createDirectiveInstance

1 个答案:

答案 0 :(得分:4)

我遇到了同样的问题,因为它被捆绑为带有默认导出的ES6模块。

使用PouchDB.plugin(require('pouchdb-find').default);可行。 或者:

import findPlugin from "pouchdb-find";
PouchDB.plugin(findPlugin);

也有效:)