vue和firebase TypeError:无法读取未定义的属性“groups”

时间:2018-06-05 12:43:41

标签: javascript firebase firebase-realtime-database vuejs2

我不会理解为什么我的数组没有定义。 TypeError:无法读取未定义的属性“groups”

但我在data()中返回数组:

我是firebase的初学者:) 有人可以帮帮我吗?

<template>
    <div class="bet">
         <h1>bet part</h1>
         
    </div>
   
</template>

<script>
import firebase,{ functions } from 'firebase'


var config = {
    ...
  };

  let app = firebase.initializeApp(config);

  let db = app.database();

    
export default {
    name: 'Bet',
    data () {
        return {
            groups: []
        }
    },
    created(){
    db.ref('groups').on("value", function(snapshot) {
        snapshot.forEach(function(data) {
        let group = data.val()
        group.key = data.key
        this.groups.push(group)
      });
    })
  }
}
</script>

1 个答案:

答案 0 :(得分:2)

回调中的

this不是Vue实例。您可能想要这样做:

 created() {
    var vm = this
    db.ref('groups').on("value", function(snapshot) {
        snapshot.forEach(function(data) {
        let group = data.val()
        group.key = data.key
        vm.groups.push(group)
      });
  })

或改为使用箭头功能!

 created() {
    db.ref('groups').on("value", (snapshot) => {
        snapshot.forEach(function(data) {
        let group = data.val()
        group.key = data.key
        this.groups.push(group)
    });
  })