Es ist nichts Falsches daran, einige Komponenten mit Status zu haben.
Zerkms
3
Das hängt ganz davon ab, wo der Staat benutzt wird. Stellen Sie sich Redux-Stores als global vor. Alles, was nicht global sein muss, kann für eine Komponente und ihre untergeordneten Elemente privat bleiben.
Azium
Antworten:
139
Eine setStateeindeutige Verwendung von wäre für UI-Komponenten, die einen lokalen Anzeigestatus haben, aber für die globale Anwendung nicht relevant sind. Beispielsweise muss sich ein Boolescher Wert, der angibt, ob ein bestimmtes Dropdown-Menü aktiv angezeigt wird, nicht im globalen Status befinden, sodass er bequemer über den Status der Menükomponente gesteuert werden kann.
Andere Beispiele könnten den Reduzierungs- / Erweiterungszustand von Linien in einer Akkordeonanzeige einer Hierarchie umfassen. Oder möglicherweise die aktuell ausgewählte Registerkarte in der Registerkartennavigation. In beiden Beispielen können Sie sich jedoch weiterhin dafür entscheiden, den UI-Status global zu behandeln. Dies wäre beispielsweise erforderlich, wenn Sie den Erweiterungs- / Reduzierungsstatus im Browserspeicher beibehalten möchten, damit er durch Seitenaktualisierung erhalten bleibt.
In der Praxis ist es normalerweise am einfachsten, solche UI-Elemente mit lokalem Status zu implementieren und sie nach Bedarf in einen globalen Status umzuwandeln.
Antworten:
Eine
setState
eindeutige Verwendung von wäre für UI-Komponenten, die einen lokalen Anzeigestatus haben, aber für die globale Anwendung nicht relevant sind. Beispielsweise muss sich ein Boolescher Wert, der angibt, ob ein bestimmtes Dropdown-Menü aktiv angezeigt wird, nicht im globalen Status befinden, sodass er bequemer über den Status der Menükomponente gesteuert werden kann.Andere Beispiele könnten den Reduzierungs- / Erweiterungszustand von Linien in einer Akkordeonanzeige einer Hierarchie umfassen. Oder möglicherweise die aktuell ausgewählte Registerkarte in der Registerkartennavigation. In beiden Beispielen können Sie sich jedoch weiterhin dafür entscheiden, den UI-Status global zu behandeln. Dies wäre beispielsweise erforderlich, wenn Sie den Erweiterungs- / Reduzierungsstatus im Browserspeicher beibehalten möchten, damit er durch Seitenaktualisierung erhalten bleibt.
In der Praxis ist es normalerweise am einfachsten, solche UI-Elemente mit lokalem Status zu implementieren und sie nach Bedarf in einen globalen Status umzuwandeln.
quelle
setState
völlig in Ordnung ist : redux.js.org/docs/faq/…