Ich arbeite an einer React App mit einer Flux Implementierung.Zugriff und Status in einer React/Flux Applikation
Ich habe einen Speicher, der an eine Komponente gebunden ist und in der ctor
ich einige Standard (leer) Statuswerte festgelegt. In componentWillMount
bevölkere ich den Zustand, indem ich einige Aktionen feuere, die die Geschäftsdaten aktualisieren. Der Speicher sendet eine Änderung und die Komponentenhandles ändern sich, indem sie Bits der Speicherdaten in den Status versetzen.
In meiner render
Methode möchte ich das Rendern von den Statusdaten abhängen.
Im Moment habe ich ein paar Probleme.
Wenn in meinem
render
Methode, die ich wie this.state.MyThing.AProperty etwas tun, dann wird die Render-Methode zu früh aufgerufen, wenn Mything noch besiedelt worden ist. Dies scheint an vielen Stellen zu geschehen, an denen ein Renderzustandsdaten verwendet werden sollen. Gibt es einen vernünftigen Schutz davor oder mache ich das falsch?Ich verwende einen Speicher, um eine Änderung auszugeben und diese Änderung zu behandeln, indem ich Daten aus dem Speicher abrufe und auf
state
der Komponente setze. Mein Denken hier ist, dass, wenn ich es als Zustand einstelle, die Komponente weiß, dass sie neu rendert, wenn sich der Zustand ändert. Ist das richtig? Oder sollte ich die Daten aus dem Speicher im emit-Handler bekommen und direkt verwenden? oder setzen Sie es auf eine lokale var in der Komponente? Der Grund, warum ich frage, ist, dass ich Probleme mitsetState
Anrufe nicht sofort und will Status zu verwenden, sobald ich es einstellen. In diesem Sinne scheint es, als würde ich es falsch machen.
Alle Gedanken sehr geschätzt.
Ich dachte, der bedingte Ansatz für jede Komponente war ein wenig ausführlich, aber ich denke, es gibt keine super nette Möglichkeit, es zu vermeiden. – dougajmcdonald
Ich bin auch kein großer Fan, aber Sie können es schöner aussehen lassen, indem Sie die bedingte Ausgabe zu einer Komponentenmethode/Hilfsfunktion verschieben und statt dessen von einer 'if'-Anweisung der obersten Ebene zurückkehren. –