⊗jsrxPmWFRs 12 of 57 menu

Reducer in Redux

In der letzten Lektion haben wir mit der Funktion createSlice einen Slice für Produkte products und einen Reducer erstellt, der diesen im Store gespeicherten Slice aktualisiert. Ich erinnere noch einmal daran, dass in Redux Daten des States über Reducer geändert werden.

Man muss beachten, dass für Reducer eine Reihe von Einschränkungen gelten. Ein Reducer aktualisiert den Zustand nur auf der Grundlage der erhaltenen Werte des aktuellen States und des action-Objekts und entscheidet dann, wie der State geändert werden soll, und gibt seinen neuen Wert zurück.

Wir wissen, dass Objekte und Arrays in JavaScript standardmäßig mutable (veränderbar) sind. Wir wissen auch, dass der State nicht direkt verändert werden darf, in diesem Fall sollte man nur mit Kopien arbeiten. Diese Regel muss auch der Reducer befolgen. Das manuelle Schreiben einer solchen Logik kann jedoch ziemlich mühsam und komplex sein, und hier kommt die Funktion createSlice zur Hilfe, die die Bibliothek Immer verwendet, um Ihren 'mutablen' Code in 'immutablen' Code umzuwandeln. Somit kann man sich nur bei der Verwendung der Funktionen createSlice oder createReducer "Sünden" erlauben und sich das Leben erleichtern.

Zu den Einschränkungen eines Reducers gehören auch die Verwendung asynchroner Logik, die Berechnung zufälliger Werte und die Ausführung anderer "Seiteneffekte". Und jetzt, nachdem wir den Reducer näher kennengelernt haben, kehren wir zu unserer Produkt-Anwendung zurück.

In unserer Anwendung gibt es einen Store, den wir in den vorherigen Lektionen erstellt haben, aber bisher ist nichts darin. Lassen Sie uns unsere Datei store.js öffnen und etwas Code hinzufügen. Importieren wir zunächst die Reducer-Funktion für Produkte:

import productsReducer from '../parts/products/productsSlice'

Jetzt können wir die importierte Funktion productsReducer als Reducer angeben:

export default configureStore({ reducer: { products: productsReducer } })

Mit der obigen Zeile teilen wir unserem Store mit, dass nun bei Auftreten einer Action alle Daten für den Slice state.products durch den Reducer productsReducer aktualisiert werden.

Sie können nun die Anwendung starten (beachten Sie, dass die Warnung über einen ungültigen Reducer in der Konsole verschwunden ist!), die Redux DevTools im Browser öffnen und durch deren Tabs navigieren. Zum Beispiel können wir, wenn wir auf den Tab State im Tab Inspector klicken, unsere beiden Produktobjekte sehen, die als Anfangswert des States beim ersten Start der Anwendung ausgegeben wurden. Auf dem Tab Log monitor sehen wir, welche Slices der globale State enthält - nämlich den Slice products, der zwei Objekte enthält. Schauen Sie sich auch den Tab Chart an.

Öffnen Sie Ihre Studenten-Anwendung und ändern Sie den Code der Datei store.js, wie in der Lektion gezeigt.

Starten Sie Ihre Anwendung im Browser und navigieren Sie durch die Tabs der Redux DevTools-Erweiterung.

Deutsch
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wir verwenden Cookies für den Betrieb der Website, Analyse und Personalisierung. Die Datenverarbeitung erfolgt gemäß der Datenschutzerklärung.
alle akzeptieren anpassen ablehnen