⊗jsrxPmRDEP 23 of 57 menu

Ändern von Produktdaten im Redux Store

Wir haben gelernt, wie man Produkte hinzufügt, aber was, wenn wir die Informationen zu einem Produkt ändern möchten? Schauen wir uns in dieser und den folgenden Lektionen an, wie das geht.

Öffnen wir unsere Produktanwendung und gehen wir zur Datei productsSlice.js. Wir beginnen damit, dass wir für den Slice products einen weiteren Reducer schreiben müssen, der bei der Aktualisierung eines Produkts ausgeführt wird. Nennen wir ihn productUpdated und fügen ihn im Feld reducers nach dem Reducer productAdded hinzu. Wir übergeben ihm sofort die Parameter state und action, auf deren Basis, wie wir uns erinnern, der Reducer funktioniert:

reducers: { productAdded(state, action) { state.push(action.payload) }, productUpdated(state, action) {}, },

Überlegen wir uns nun, welche Daten wir für die Aktualisierung des Produkts benötigen. In erster Linie - die id, anhand derer wir das gewünschte Produkt im Store finden können. Die restlichen Daten - Name, Beschreibung, Preis und Menge stehen uns zur Änderung zur Verfügung. Alle diese Werte erhalten wir aus der Eigenschaft payload des Action-Objekts, das bei uns eingeht, und wenn wir es von Hand schreiben würden, würde es so aussehen, wie unten gezeigt. Beachten Sie, dass der erwartete Wert der Eigenschaft payload ein Argument ist, daher werden wir hier ein Objekt übergeben (darüber sprechen wir später):

{ type: 'products/productUpdated', payload: {id, name, desc, price, amount} }

Nachdem die wichtigsten Punkte geklärt sind, können wir nun in den geschweiften Klammern den Code für productUpdated schreiben. Zuerst holen wir die geänderten Daten aus dem Objekt action:

productUpdated(state, action) { const { id, name, desc, price, amount } = action.payload },

Nun finden wir anhand der erhaltenen id das Produkt, das geändert werden muss:

productUpdated(state, action) { const { id, name, desc, price, amount } = action.payload const desiredProduct = state.find(product => product.id === id) },

Wenn ein solches Produkt im Store gefunden wurde, ersetzen wir seine Daten durch die neuen Werte:

productUpdated(state, action) { const { id, name, desc, price, amount } = action.payload const desiredProduct = state.find(product => product.id === id) if (desiredProduct) { desiredProduct.name = name desiredProduct.desc = desc desiredProduct.price = price desiredProduct.amount = amount } },

Es bleibt uns nur noch, den Action Creator für die Verwendung in der Komponente zu exportieren, den createSlice bereitwillig für uns erstellt. Fügen wir ihn am Ende der Datei zum Export hinzu, zusammen mit dem vorhandenen productAdded:

export const { productAdded, productUpdated } = productsSlice.actions

Öffnen Sie Ihre Studenten-Anwendung. Nachdem Sie den Stoff der Lektion durchgearbeitet haben, schreiben Sie in der Datei studentsSlice.js einen weiteren Reducer für productsSlice hinzu, der die Studentendaten im Store aktualisiert, falls sie vom Benutzer geändert werden. Nennen Sie ihn studentUpdated.

Und wie würde in diesem Fall Ihr Action-Objekt aussehen? Senden Sie seinen Code in der Antwort.

Exportieren Sie am Ende der Datei den erhaltenen Action Creator studentUpdated.

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