【问题标题】:IONIC 3 - TypeError: Object(...) is not a functionIONIC 3 - TypeError: Object(...) is not a function
【发布时间】:2019-01-02 10:33:25
【问题描述】:

我是使用 Firebase 使用 Ionic 的新手,运行应用程序时出现此错误:

TypeError: Object(...) is not a function

这是代码的不同部分:

在“ts”文件中:

items : AngularFireList<any[]>; 
itemArray = [];

this.items = afs.list("persons");

this.items.snapshotChanges().subscribe(actions =>{
actions.forEach(action=>{
let y = action.payload.toJSON();
y['$key'] = action.key;
this.itemArray.push(y as Person);
})
})

HTML:

<ion-item-sliding *ngFor = "let person of itemArray"> 
...

我已经安装了最新版本的 firebase 和 angularfire2:

npm install firebase angularfire2 --save
npm install @firebase/app@latest --save

app.module.ts 中的当前配置:

"angularfire2": "^5.0.0-rc.11",
    "firebase": "^5.3.0",
    "ionic-angular": "3.9.2",
    "ionicons": "3.0.0",
    "rxjs": "5.5.11",

【问题讨论】:

  • 我用这个命令解决了这个错误:npm i rxjs@6 rxjs-compat@6 promise-polyfill --save
  • 我建议不要使用 angularfire。根据我的经验,维护和更新它是一件令人头疼的事情。 Firebase SDK 本身为您提供了足够的功能。
  • 我通过运行以下命令解决了这个错误:npm i rxjs@6 rxjs-compat@6 promise-polyfill --save

标签: angular typescript firebase ionic-framework ionic3


【解决方案1】:

确保您的函数调用返回非空值:

items : AngularFireList<any[]>; 
itemArray = [];

this.items = afs.list("persons");

if(this.items){
    this.items.snapshotChanges().subscribe(actions =>{
      actions.forEach(action=>{
        if(action && action.payload){
           let y = action.payload.toJSON();
           y['$key'] = action.key;
           this.itemArray.push(y as Person);
       }
    })
})

作为旁注,我建议不要使用 angularfire。以我的经验,维护和更新它是一件令人头疼的事情。 Firebase SDK 本身为您提供了足够的功能。

【讨论】:

    猜你喜欢
    • 2019-01-25
    • 2020-06-29
    • 2019-10-02
    • 1970-01-01
    • 2018-11-16
    • 2019-04-05
    • 2019-01-30
    • 2020-08-03
    相关资源
    最近更新 更多