Post
とComments
の2つのコンポーネントがあります。
Postコンポーネントの内部には、postId
、numCom
(コメントの数)、およびcomments
(配列)の3つのプロパティを持つCommentsコンポーネントがあります。
コメントを取得し、小道具で配列を渡します。次に、コメントコンポーネントで配列を取得してデータに追加し、コメントなどを追加/削除できるようにします。
ここに私のコードがComments.vue
:
props: ['id', 'numCom', 'comments'],
data: function() {
return {
newMessage: "",
loading: false,
allComments: this.comments,
num: this.numCom,
}
},
しかし、これは機能しません。 Vue開発者ツールでは、comments
propにコメントが入力されていますが、allComments
配列は空です。
私は何をすべきか?
comments
propには、コンポーネントの作成時に値がないように見えます(allComments
が設定される唯一の時間です)。
次のいずれかを実行できます。
v-if
を使用して、comments
プロパティが準備できるまでコンポーネントの作成を延期します。<comments v-if="comments" :comments="comments"></comments>
comments
propへの変更を監視し、allComments
を新しい値に設定します(データ関数でallComments
を初期化することに加えて)。watch: {
comments(value) {
this.allComments = value;
}
}