Dlaczego ta migawka powoduje wyświetlenie każdego dokumentu dwukrotnie? Trzepotanie
Aug 15 2020
Mam coś prostego:
.snapshots()
.listen((snapshot) {
snapshot.documentChanges.forEach((doc) { // Loop every document
if (doc.type == DocumentChangeType.modified) { // If doc is modified
print(doc.document.documentID);
}
});
});
Mam w sumie 2 dokumenty i odsłuchuję kolekcję, w której te dokumenty są przechowywane. Chcę tylko DocumentId zmienionego, ale otrzymuję to:
I/flutter ( 2785): bdfDfgsDg4TsdfadvGew
I/flutter ( 2785): bdfDfgsDg4TsdfadvGew
I/flutter ( 2785): bdfDfgsDg4TsdfadvGew
I/flutter ( 2785): bdfDfgsDg4TsdfadvGew
Dlaczego cztery razy? Jeśli to było 2 razy, to rozumiem, ponieważ mam pętlę foreach.
Odpowiedzi
SrilalSachintha Aug 15 2020 at 18:49
Najprawdopodobniej to, co się dzieje, to twoja pętla wywoływana za każdym razem, gdy tworzony jest stan. otrzymujesz 4, ponieważ twój stan jest odbudowywany 2 razy z jakiegoś powodu.
nie mogę wiele powiedzieć bez zapoznania się z całym kodem. ale powyższy powód jest najczęstszym przypadkiem.