⊗jsrxPmSDSSC 35 of 57 menu

Zmena štruktúry stavu v Reduxe

Prvý krok, ktorý budeme realizovať pre interakciu našej Redux aplikácie s nejakým externým serverom - je získanie dát, ktoré sú na ňom uložené pri spustení aplikácie. Ale predtým, poďme vykonať v našej aplikácii niektoré zmeny.

Otvorme našu aplikáciu s produktmi, a v nej súbor productsSlice.js. Všimnite si definíciu initialState. Pôvodne náš slice s produktmi productsSlice - je to pole, v ktorom sú objekty (v našom prípade sú dva) s údajmi produktov. Po prvé, pretože teraz ich budeme načítavať zo servera, potrebujeme ich odstrániť z initialState. Po druhé, budeme posielať na server API požiadavky a bude pre nás dôležité vedieť o ich stave. Berúc do úvahy tieto dve veci, poďme prepracovať initialState. Nech je to teraz jednoducho objekt s poliami products (pôvodne tu nebudú žiadne dáta, ale prázdne pole), status a error. Teraz sa náš kód pre initialState stane o niečo kratším:

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

Zatiaľ sme nastavili status 'idle' (nečinnosť), pretože pôvodne neodosielame žiadne požiadavky, ale vo všeobecnosti sa bude meniť a môže nadobúdať hodnoty 'loading', 'succeeded', 'failed'. Pamätajte, že na označenie stavu môžete zvoliť tie mená, ktoré budú pre vás pohodlné.

Klesáme nižšie podľa kódu. Následne po zmene initialState, musíme zmeniť aj kód, v ktorom pracujeme s týmto stavom v funkciách-reduktoroch. Pozrime sa na kód pre productAdded:

state.push(action.payload)

Teraz nové produkty budeme ukladať nie jednoducho do state pre produkty, ale do jeho vlastnosti state.products. Preto nahraďme vyššie uvedený riadok:

state.products.push(action.payload)

V súlade s tým, urobme tie isté zmeny pre reduktor reactionClicked. Namiesto:

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

Teraz bude:

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

Nahraďte sami state za state.products a v kóde reduktora productUpdated.

Otvorte vašu aplikáciu so študentmi. Otvorte v nej súbor studentsSlice.js. Nech teraz váš initialState má tri vlastnosti: students, status, error - prepracujte ho, ako je ukázané v lekcii.

Vykonajte zodpovedajúce zmeny a nižšie podľa kódu. Nahraďte state za state.students v kóde pre vaše tri funkcie-reduktory.

Slovenčina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používame cookies na fungovanie stránky, analýzu a personalizáciu. Spracúvanie údajov prebieha v súlade s Politikou ochrany osobných údajov.
prijať všetky nastaviť odmietnuť