使用Vue JS 2,firebase返回的数据对象未在实例上定义,但在呈现期间引用

时间:2017-12-29 18:11:27

标签: firebase vuejs2

我正在https://medium.com/codingthesmartway-com-blog/vue-js-2-firebase-e4b2479e35a8处理Vue教程。我可以将新数据发布到firebase但我没有收到任何返回的数据。

我在控制台中看到此错误:

  

vue.esm.js efeb:578

     

[Vue警告]:财产或方法“书籍”不是   在实例上定义但在呈现期间引用。确保这一点   此属性在数据选项中是反应性的,或者用于   基于类的组件,通过初始化属性。看到:   https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties

相关区块如下。这是用于显示检索数据的模板循环:

$start = memory_get_usage ();

for ($i = 0; $i < 100000; $i++) {
    $a = ['test'];
    // if you remove this line, the memory usage is 0, if not 4000000
    $a[] = &$a;
    unset($a);
}

echo memory_get_usage() -  $start;

在脚本部分:

<tr v-for="(book, key) in books" v-bind:key="key">
    <td>
        {{book.title}}
    </td>
</tr>

任何建议都将不胜感激!

2 个答案:

答案 0 :(得分:0)

来自vuefire docs

  

如果需要从Vue实例访问属性,请使用函数语法:

var vm = new Vue({
  el: '#demo',
  firebase: function () {
    return {
      anArray: db.ref('url/to/my/collection/')
    }
  }
})

答案 1 :(得分:0)

由于Vue不允许动态添加根级反应性属性,因此您必须通过声明所有根级反应性数据属性(即使值为空)来初始化Vue实例:

{row.Color}