开发者问题收集

如何修复 Ionic 中的“无法设置未定义的属性‘bindCallback’”?

2018-12-23
1080

我正在尝试创建一个使用 google firestore 作为数据库的 ionic-3 应用程序,但我一直收到错误。

我曾经收到 TypeError:Object(...) 不是一个函数 ,经过一番谷歌搜索后,我尝试通过安装 rsjs 和 rsjs-compat 来补救。现在我得到了 无法设置未定义的属性“bindCallback” ,即使我删除了代码中对 firebase 和 rsjx 的所有引用。

我还尝试了 import { Observable } from 'rxjs/Observable'import { Observable } from 'rxjs' 的各种排列,但这些都无法解决问题。

我的软件包版本是: (全局)

(非全局)

导入:

  • 从 '@angular/core' 导入 { Component, Injectable };

  • 从 'ionic-angular' 导入 { IonicPage, NavController, NavParams };

  • 从 'angularfire2/firestore' 导入 { AngularFirestore };

从 'rxjs' 导入 { Observable };

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

  constructor(public navCtrl: NavController, public navParams: NavParams, private fireStore: AngularFirestore) {
      this.chatDoc = fireStore.doc('chats/test-chat')
  }

  ionViewDidLoad() {
    console.log('ionViewDidLoad HomePage');
  }

}

来自 Ionic 的错误:

运行时错误

Cannot set property 'bindCallback' of undefined
Stack
TypeError: Cannot set property 'bindCallback' of undefined
at Object.<anonymous> (http://localhost:8100/build/vendor.js:154433:32)
at __webpack_require__ (http://localhost:8100/build/vendor.js:55:30)
at Object.<anonymous> (http://localhost:8100/build/vendor.js:152110:1)
at __webpack_require__ (http://localhost:8100/build/vendor.js:55:30)
at Object.<anonymous> (http://localhost:8100/build/vendor.js:49616:10)
at __webpack_require__ (http://localhost:8100/build/vendor.js:55:30)
at Object.<anonymous> (http://localhost:8100/build/vendor.js:152085:14)
at __webpack_require__ (http://localhost:8100/build/vendor.js:55:30)
at Object.<anonymous> (http://localhost:8100/build/vendor.js:48266:10)
at __webpack_require__ (http://localhost:8100/build/vendor.js:55:30)

Ionic Framework: 3.9.2

Ionic App Scripts: 3.2.1
Angular Core: 5.2.11
Angular Compiler CLI: 5.2.11
Node: 10.14.2
OS Platform: Windows 10
Navigator Platform: Win32
User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36
1个回答

正如我在这里读到的 https://github.com/angular/angular/issues/20095 ,问题是由于 typescript 不兼容而发生的。更新 typescript 应该可以解决问题。 因此在 cmd 中运行此命令(确保您已安装 node.js)

npm install -g typescript@latest

然后它应该可以工作 ^_^。

Prince Charles B. Vergara
2018-12-27