Vue无法读取未定义的属性

时间:2018-08-23 23:42:14

标签: vue.js vue-router html-framework-7

<template>
  <f7-page>
    <f7-navbar>
        <f7-nav-left back-link="Zurück"></f7-nav-left>
        <f7-nav-title>{{groupDetails.data.group.name}}</f7-nav-title>
        <f7-nav-right></f7-nav-right>
    </f7-navbar>
    <f7-list>
        <f7-list-item>{{$f7route.params.groupKey}}</f7-list-item>
        <f7-list-item>{{groupDetails.data.owner.userID}}</f7-list-item>
    </f7-list>
  </f7-page>
</template>
<script>
import *  as firebase from 'firebase'

export default {
    beforeCreate: function() {
        var this_ = this
        firebase.firestore().collection("groups").doc(this_.$f7route.params.groupKey).onSnapshot({
            includeMetadataChanges: true
        }, function(doc) {
            this_.groupDetails = ({data: doc.data()})
            console.log(this_.groupDetails)
        })

    },
    data() {
        return {
            groupDetails: []
        }
    }
}
</script>

我不知道为什么,但不能在此页面上浏览查看路由器。 “无法读取未定义的属性'group'””。错误。

有人知道为什么吗?

2 个答案:

答案 0 :(得分:1)

将groupDetails.data.group检查为v-if,以便仅在group存在时才显示模板。这可能是由于尚未完成的异步调用。

答案 1 :(得分:1)

您可以致电this.$nextTick

this.$nextTick(()=>{ 
  //some code
});
  

推迟下一个DOM更新周期后执行的回调。采用   在您更改了一些数据以等待DOM之后   更新。 https://vuejs.org/v2/api/#Vue-nextTick