⊗jsrxPmSDSSC 35 of 57 menu

Modifica della struttura dello stato in Redux

La prima fase che implementeremo per l'interazione della nostra applicazione Redux con un server esterno è il recupero dei dati memorizzati su di esso all'avvio dell'applicazione. Ma prima, apportiamo alcune modifiche alla nostra applicazione.

Apriamo la nostra applicazione di prodotti, e in essa il file productsSlice.js. Prestate attenzione alla definizione di initialState. Inizialmente la nostra slice dei prodotti productsSlice è un array che contiene oggetti (nel nostro caso due) con i dati dei prodotti. In primo luogo, poiché ora li caricheremo dal server, dobbiamo rimuoverli dal initialState. In secondo luogo, invieremo richieste API al server e sarà importante conoscere il loro stato. Tenendo conto di queste due cose, modifichiamo initialState. Che ora sia semplicemente un oggetto con i campi products (inizialmente qui non ci saranno dati, ma solo un array vuoto), status e error. Ora il nostro codice per initialState diventerà leggermente più breve:

const initialState = { products: [], status: 'idle', error: null, }

Per ora abbiamo impostato lo stato 'idle' (inattività), dato che inizialmente non inviamo alcuna richiesta, ma in generale cambierà e potrà assumere valori 'loading', 'succeeded', 'failed'. Ricordate che per denotare lo stato potete scegliere i nomi che vi sono più convenienti.

Scendiamo più in basso nel codice. A seguito della modifica di initialState, dobbiamo cambiare anche il codice in cui lavoriamo con questo stato nelle funzioni reducer. Diamo un'occhiata al codice per productAdded:

state.push(action.payload)

Ora i nuovi prodotti li metteremo non semplicemente nello state dei prodotti, ma nella sua proprietà state.products. Pertanto, sostituiamo la riga sopra indicata con:

state.products.push(action.payload)

Di conseguenza, apportiamo le stesse modifiche per il reducer reactionClicked. Invece di:

const currentProduct = state.find((product) => product.id === productId)

Ora sarà:

const currentProduct = state.products.find((product) => product.id === productId)

Sostituite da soli state con state.products nel codice del reducer productUpdated.

Aprite la vostra applicazione con gli studenti. Aprite in essa il file studentsSlice.js. Fate in modo che il vostro initialState abbia tre proprietà: students, status, error - modificatele, come mostrato nella lezione.

Apportate le modifiche corrispondenti più in basso nel codice. Sostituite state con state.students nel codice per le vostre tre funzioni reducer.

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