Ich habe dies bereits überprüft SO article, aber die Lösung funktioniert nicht. Ich habe eine einfache Messaging-Anwendung unter Verwendung von Firebase + Flux:React & Firebase + Flux: Untergeordnete Komponente wird nicht gerendert
App
-UserList Component (sidebar)
-MessageList Component
Die Userlist Komponente Requisiten von this.state.threads (Zustand gehört zur Haupt App-Komponente) bekommt.
In meinem Flux ThreadStore, ich habe folgenden Ereignis-Listener auf eine firebaseRef gebunden:
const _firebaseThreadAdded = (snapshot) => {
threadsRef.child(snapshot.key()).on('value', (snap) => {
console.log('thread added to firebase');
_threads.push({
key: snap.key(),
threadType: snap.val().threadType,
data: snap.val()});
});
}
ref.child(ref.getAuth().uid).child('threads').on('child_added', Actions.firebaseThreadAdded);
Die Userlist verwendet this.props.threads.map(thread => { return(<li>{thread.name}</li>) })
(zusammengefasst), um dann eine Liste der Threadnamen in der Seitenleiste auf der Grundlage des Faden zu machen Schlüssel in der firebaseRef/userId/threads.
Doch diese machen keine Liste der Benutzer , bis ich in der App eine beliebige Taste klicken oder einen Verweis direkt von der Benutzeroberfläche Firebase Forge löschen (Ich habe auch eine ‚child_removed‘ Ereignis-Listener).
Für das Leben von mir kann ich das nicht herausfinden. Kann jemand erklären, warum das passiert/wie man es repariert? Ich habe einen ganzen halben Tag damit verbracht, es zu versuchen und habe mir nichts einfallen lassen.
FYI:
Relevante Dispatcher.register Eintrag:
case actionConstants.FIREBASE_THREAD_ADDED: _firebaseThreadAdded(action.data); threadStore.emitChange(); break;
Relevante Aktionen Eintrag:
firebaseThreadAdded(data) { AppDispatcher.handleAction({ actionType: actions.FIREBASE_THREAD_ADDED, data }); },