⊗jsrxPmWFRAA 17 of 57 menu

Reducer e action in Redux

Nella lezione precedente abbiamo completato il modulo per aggiungere un prodotto e lo abbiamo visualizzato sulla pagina principale. Ma per ora i dati aggiunti non vengono salvati, in altre parole il nuovo prodotto non viene aggiunto a quelli esistenti nello store. Sistemiamo questo.

Per iniziare, nella nostra applicazione dei prodotti apriremo il file productsSlice.jsx e scriveremo nella proprietà reducer per createSlice la funzione productAdded, che si occuperà di aggiungere il prodotto allo store sulla base dello stato corrente e dell'azione che le vengono passati. È importante notare che qui non ci viene passato l'intero state, ma solo la parte che riguarda i prodotti (lo slice products conosce solo quella). L'oggetto con il nuovo prodotto sarà nella proprietà payload dell'oggetto action, che verrà generato dal gestore dell'evento al click del pulsante di salvataggio nel modulo. Di conseguenza, il reducer productAdded apparirà nel codice di createSlice così:

const productsSlice = createSlice({ name: 'products', initialState, reducers: { productAdded(state, action) { state.push(action.payload) }, }, })

E per quanto riguarda l'action? All'inizio del tutorial abbiamo menzionato che un action è un evento, rappresentato come un oggetto, che descrive ciò che è accaduto nell'applicazione. Abbiamo anche parlato del fatto che si può usare una funzione action creator, che creerà per noi un tale oggetto, ad esempio così:

const addProduct = newProduct => { return { type: 'products/productAdded', payload: newProduct } }

La buona notizia è che non dobbiamo fare nulla, perché lo farà per noi la funzione createSlice che stiamo utilizzando. Non appena scriviamo un reducer, essa creerà automaticamente per noi un action creator con lo stesso nome. A noi non resta che esportare l'action creator ottenuto per un uso successivo nei componenti. Facciamolo alla fine del file prima dell'esportazione del reducer, in questo modo:

export const { productAdded } = productsSlice.actions export default productsSlice.reducer

Apri la tua applicazione con gli studenti, poi il file studentsSlice.jsx, aggiungi il valore del campo reducer per createSlice, come mostrato nella lezione.

Aggiungi alla fine del file studentsSlice.jsx l'esportazione della funzione action creator ottenuta.

Italiano
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesia日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Utilizziamo i cookie per il funzionamento del sito, l'analisi e la personalizzazione. I dati vengono elaborati in conformità con la Politica sulla privacy.
accetta tutto personalizza rifiuta