2017-07-27 5 views
0

Ist es möglich, einen Zustand zu erstellen, ohne ein Objekt innerhalb des Konstruktors zu verwenden?Wie dynamisch Zustand in React erstellen?

Ich muss dynamisch neue Zustände innerhalb der Komponente im laufenden Betrieb erstellen. Irgendwelche Empfehlungen?

interface IComponentState { 
    dynamicState: any 
} 

und dann können Sie ein beliebiges Objekt zu diesem dynamicState assing .... oder eine beliebige Anzahl von Optionen, um es ..:

+0

Ich habe nicht den Zweck der Erstellung dynamischer Zustand erhalten. Sie können ein leeres Zustandsobjekt im Konstruktor haben und dann das Zustandsobjekt in der Komponente beliebig manipulieren. Können Sie hier Ihre Anforderung ausarbeiten? – Umesh

Antwort

0

falls Sie wurde Typoskript verwenden, würde ich Ihren Zustand wie folgt definieren ., müssen nicht zuordnen

im Klar JS Sie selbst, so wird es simplier sein - nur leeres zuweisen Objekt beim Start

0

Zustand in innerer Methode erstellen - machen, ist keine gute Idee.
Reaction empfohlen verwenden Sie nur setState() oder 'state = ...' im Konstruktor.

0

Das Zustandsobjekt ist buchstäblich nur ein Javascript-Objekt, daher ist es bereits dynamisch.

Wenn Sie möchten, können Sie es überall und jederzeit ändern. Aber das bricht völlig das gute Design-Muster, das React Ihnen gibt - einzige Quelle der Wahrheit für Daten, und keine Statusobjekte mutieren, gibt Ihnen eine perfekte Geschichte von jeder Handlung, die stattgefunden hat, machen das Debuggen ein Stück Kuchen.

Deshalb empfehlen sie Ihnen, einen Anfangszustand zu erstellen, und verwenden Sie dann setState, das nur eine neue Kopie erstellt, während die von Ihnen angegebenen Felder geändert werden.

Spring hinunter zum ‚Staat Mit Korrekt‘: https://facebook.github.io/react/docs/state-and-lifecycle.html

Wenn Sie zu ‚dynamisch neuen Staaten on the fly erstellen‘, gibt es keinen Grund Sie diese im Konstruktor mit den Anfangswerten nicht definieren können, ob oder nicht du benutzt sie? Ich sehe keinen Grund, warum sie nicht zuerst existieren müssten, anstatt nur einen Anfangszustand zu haben. Weitere Details zu dem, was Sie versuchen, wären hilfreich.

Verwandte Themen