⊗jsrxPmSDSSC 35 of 57 menu

Modificarea structurii stării în Redux

Prima etapă pe care o vom implementa pentru interacțiunea aplicației noastre Redux cu un server extern este obținerea datelor stocate pe acesta la lansarea aplicației. Dar mai întâi, să aducem câteva modificări în aplicația noastră.

Să deschidem aplicația noastră cu produse, iar în ea fișierul productsSlice.js. Acordați atenție definiției initialState. Inițial, slice-ul nostru cu produse productsSlice este un array în care se află obiecte (în cazul nostru sunt două) cu datele produselor. În primul rând, deoarece acum le vom încărca de pe server, trebuie să le eliminăm din initialState. În al doilea rând, vom trimite către server cereri API și va fi important pentru noi să știm statusul lor. Ținând cont de aceste două aspecte, haideți să refacem initialState. Să fie acum un simplu obiect cu câmpurile products (inițial aici nu vor fi date, ci doar un array gol), status și error. Acum codul nostru pentru initialState va deveni puțin mai scurt:

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

Deocamdată am setat statusul 'idle' (inactivitate), deoarece inițial nu trimitem nici o cerere, dar în general se va schimba și poate lua valori 'loading', 'succeeded', 'failed'. Amintiți-vă că pentru a desemna statusul puteți alege acele nume care vă vor fi convenabile.

Coborâm mai departe în cod. În urma modificării initialState, trebuie să schimbăm și codul, în care lucrăm cu această stare în funcțiile-reducer. Să ne uităm la codul pentru productAdded:

state.push(action.payload)

Acum noile produse le vom adăuga nu simplu în state pentru produse, ci în proprietatea sa state.products. Prin urmare, înlocuim linia menționată mai sus cu:

state.products.push(action.payload)

În consecință, vom face aceleași modificări pentru reducer-ul reactionClicked. În loc de:

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

Acum va fi:

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

Înlocuiți singuri state cu state.products și în codul reducer-ului productUpdated.

Deschideți aplicația voastră cu studenți. Deschideți în ea fișierul studentsSlice.js. Să aibă acum initialState-ul vostru trei proprietăți: students, status, error - refaceți-l, așa cum este arătat în lecție.

Aduceți modificările corespunzătoare și mai jos în cod. Înlocuiți state cu state.students în codul pentru cele trei funcții-reducer ale voastre.

Română
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Folosim cookie pentru funcționarea site-ului, analiză și personalizare. Prelucrarea datelor are loc în conformitate cu Politica de confidențialitate.
acceptă toate configurează respinge