更改无法更新评论Ref.on( "child_changed" , (data) => {



嗨,我正在使用带有react的firebase,这是我尝试使用时的问题

commentsRef.limitToLast(1).on("child_changed", (data) => {

if (guests) {
const key = data.key;
const updatedGuest = data.val();
//guests ->isnt updated from last trigger
const cloneGuests =_.cloneDeep(guests);
cloneGuests.forEach((element, index) => {
if (element.guestID === key) {
cloneGuests[index] = updatedGuest;
}
});
setGuests(cloneGuests);
}
});

我正试图将访客与我的前一状态和新数据一起使用,前一状态没有更新的问题是因为firebase的触发比更改状态更快,

您可以取消反应油漆的抖动并更新

let changes = [];
const storeData = (changedData) => {
changes.push({
key: changedData.key,
updatedGuest: changedData.val()
});
}
const updateDisplay = () => {
for (canst guest in storeData){
const cloneGuests =_.cloneDeep(guests);
cloneGuests.forEach((element, index) => {
if (element.guestID === key) {
cloneGuests[index] = updatedGuest;
}
});
}
setGuests(cloneGuests);
changes  = [];

}
commentsRef.limitToLast(1).on("child_changed", (data) => {
if (guests) {
storeData(guests);
debounce(updateDisplay,500);
}
});

最新更新