Ich bin mir nicht sicher, ob es Standardverhalten oder Redux oder etwas anderes ist aber ich fand, dass beim Ausführen einer Aktion diese Aktion durch alle Reduzierungen läuft (das ist ok), aber es ruft auch den Connect-Listener jedes Reduzierers auf, der das resultierende Rendering seiner Komponente weiterführt. Dies bedeutet, dass bei jedem Dispatch alle Komponenten innerhalb des App-Statusbaums gerendert werden. Ist dies absichtlich getan von Redux oder ich habe etwas Unrecht getan. Hilf mir, diese Dinge zu klären.Alle Komponenten werden gerendert, auch wenn wir nur einen in reduce rendern mussten
Antwort
In Redux ist Ihr Status global und wird von redux gehandhabt. Wenn Sie eine Aktion versenden, setzen Sie nur den globalen Status. Ihre Containerkomponenten erhalten den neuen Status und der Reducer würde an ihnen arbeiten, aber Ihre Komponenten werden nicht neu gerendert, da der vorherige Status und der nächste Status identisch sind.
nur diejenigen Komponenten würden deren mapStatetoProps führen zu einem anderen Ergebnis
Dieses Verhalten ist völlig in Ordnung gemacht werden. Siehe die React Docs für ihr virtuellen DOM Konzept:
Reagieren Verwendung eines virtuellen DOM macht, die ein Beschreiber einer DOM-Unterstruktur ist im Browser gerendert. Diese parallele Darstellung ermöglicht es React, das Erstellen von DOM-Knoten und den Zugriff auf vorhandene Knoten zu vermeiden. Dies ist langsamer als bei JavaScript-Objekten. Wenn sich Requisiten oder Status einer Komponente ändern, entscheidet React, ob eine tatsächliche DOM-Aktualisierung erforderlich ist, indem ein neues virtuelles DOM erstellt und mit dem alten verglichen wird. Nur in dem Fall, dass sie nicht gleich sind, wird React das DOM abstimmen und so wenig Mutationen wie möglich anwenden.
So müssen Sie sich keine Sorgen machen, dass jede Komponente jedes Mal neu gerendert wird, wenn Sie eine Aktion versenden.
- 1. Reagieren Rendern eines Parents nur, wenn Child gerendert wird
- 2. Appcelerator Erzwingen, dass alle TableView-Zeilen beim Laden gerendert werden
- 3. wie untergeordnete Komponenten in react.js rekursiv gerendert werden
- 4. Rendern mehrerer Komponenten
- 5. Cytoscape js Ereignis, wenn alle Elemente gerendert werden?
- 6. So werden alle untergeordneten Komponenten auf einmal gerendert, während der react-Router verwendet wird
- 7. Rendern von Swing-Komponenten in einen Offscreen-Puffer
- 8. React SPA - Ladebildschirm anzeigen, bis mehrere Komponenten gerendert werden
- 9. AngularJS verschachtelte Seiten, alle werden gerendert
- 10. Rendern Rendern von Kacheln nur in [6 - 9] Zoombereich
- 11. Warum mussten wir oben im Code ein Paket deklarieren?
- 12. Reagieren Rendern Komponenten von String
- 13. JavaFX: halte alle Komponenten in der Mitte, auch wenn ich die Größe eines Fensters ändere
- 14. ReactJS: Erstellen von Komponenten, ohne Rendern für nicht reagierende Bibliotheken
- 15. Reagieren auf Komponenten, die nicht rendern
- 16. wie man react Komponenten mit map und join rendern
- 17. Fehler beim Rendern von react-bootstrap Komponenten
- 18. Wie rendern nur Notizen mit gleichem Datum?
- 19. Bündelung Skripte werden nicht gerendert
- 20. Wie bekomme ich Zeit, wenn alle Elemente gerendert und in Polymer angezeigt werden?
- 21. Rspec Testvorlagen gerendert werden
- 22. Warum erhalten wir keinen Kompilierzeitfehler, auch wenn wir stdio.h nicht in ein C-Programm aufnehmen?
- 23. Rendern des Feldnamens in einer EditorTemplate (gerendert über EditorFor())
- 24. Return Zeilen nur, wenn Übereinstimmungen alle Liste
- 25. Nicht alle Komponenten zeigen
- 26. Modal nur schließen, wenn alle Eingabefelder eingegeben werden
- 27. Kann Pandas Dataframe in einem neuen Fenster gerendert werden?
- 28. Was ist der Reduce-Parameter in CouchDBs Reduce-Funktion?
- 29. Alle TableRows werden jedes Mal, wenn eine Zeile erneut gerendert mit Reagieren und Material-ui ausgewählt ist
- 30. Zeilenumbrüche in Rails können nicht mit simple_format gerendert werden