に子の値を更新する私は、データベースサービスのためのアプリとfirebaseためvuejsを使用しています。DOM
次のようにアプリの初期状態は次のとおりです。
const state :{
newStatus: [],
statuses: [],
initialStatusFetched: false
}
アプリが作成されるとfullowingイベントがcreated()
ライフサイクルフックにトリガされますfirebaseからステータスを取得し、上記の初期状態で配列に追加します。
created(){
//fetches initial status and adds it to statuses[ ]
function fetchStatus() {
const ref = firebase.database().ref();
ref.child("allstatuses").once('value', (snapshot) => {
snapshot.forEach((childSnap) => {
let childKey = childSnap.ke;
let childData = childSnap.val();
let statusData = {
key: childKey,
statusVal : childData
}
state.statuses.unshift(statusData);
state.loader = false;
state.initialStatusFetched = true;
});
});
};
//fetches newly added status and adds it to newStatus[ ]
function statusAdded() {
const ref = firebase.database().ref();
ref.child("allstatuses").on('child_added', function(status) {
if(state.initialStatusFetched){
let statusData = {
key: status.key,
statusVal: status.val()
}
state.newStatus.push(statusData);
}
});
};
}
今、私は直面していますこの問題を
<template>
<div>
<div>
<!--statuses-->
<div v-for="status in statuses" class="media my-media">
// ommitted all the un-important part
<div class="media-body">
<button @click="addlike(status.key, userStatus.loggedIn)" class="btn my-btn">Like</button>
//displaying number of likes
<span style="margin-right:20px">{{ status.statusVal.likes }}</span>
<button @click="addDislike(status.key, userStatus.loggedIn)" class="btn my-btn">Disike</button>
//displaying number of dislikes
<span>{{ status.statusVal.dislikes }}</span>
</div>
</div>
</div>
</div>
</template>
function updateLikes() {
const ref = firebase.database().ref();
ref.child("allstatuses/" + statuskey + "/likes").on('value', (snapshot) => {
// hiw can I fetch the value os statusKey so i can use it above
console.log(snapshot.val());
});
};
-
されています。今、私の上にトリガされたイベントで満たされますアレイを用いたは
statusKeyの値を取得するにはどうすればいいですかノードを参照して上記のコードを使用してlikesの値を更新するために使用できますか?
ステータス[]が新しいステータスで追加されているため、データベース内のどのステータスが好きで、特定のステータスがステータス[]にあるのかわかりますか?
次のテンプレートを使用してステータスのページを読み込みます
私はそれが正しい得た場合、私は知りません。データベースに変更があったときに、「画面上の」値を変更する必要があります。それはこれでしょうか? –
@LucasTorresええ、あなたはそれを得ました、それは私が望むものです。 –
「深く:真」で「時計」を試してください。https://vuejs.org/v2/api/#vm-watch – wostex