如何评估data属性中的Vue.js组件道具?

我有2个组成部分:PostComments

在Post组件内部,有Comment组件,它具有3个道具:postIdnumCom(评论数)和comments(数组)。

我收到评论,并用道具传递数组,现在我想在评论组件中检索该数组并将其添加到数据中,以便随后添加/删除评论等。

这是我的代码Comments.vue

props: ['id', 'numCom', 'comments'],
data: function() {
  return {
     newMessage: "",
     loading: false,
     allComments: this.comments,
     num: this.numCom,
   }
},

但这是行不通的。在Vue开发人员工具中,我可以看到commentsprop充满了注释,但是allCommentsarray为空。

我该怎么办?

小小2020/03/30 18:25:23

看起来commentsprop在创建组件时没有值(这是唯一allComments设置的时间)。

您可以:

  1. 使用以下命令推迟组件的创建,直到comments道具准备就绪v-if
<comments v-if="comments" :comments="comments"></comments>
  1. 观察commentsprop的更改并设置allComments为新值(除了allComments在data函数中初始化):
watch: {
  comments(value) {
    this.allComments = value;
  }
}