⊗jsrxPmSDSSC 35 of 57 menu

De structuur van de state in Redux aanpassen

De eerste fase die we zullen implementeren voor de interactie van onze Redux-applicatie met een externe server is het ophalen van gegevens die daar zijn opgeslagen bij het opstarten van de applicatie. Maar laten we eerst enkele wijzigingen in onze applicatie aanbrengen.

Laten we onze productenapplicatie openen, en daarin het bestand productsSlice.js. Let op de definitie van initialState. Oorspronkelijk is onze slice met producten productsSlice een array, waarin objecten staan (in ons geval twee) met gegevens van producten. Ten eerste, omdat we ze nu gaan opladen vanaf een server, moeten we ze uit de initialState halen. Ten tweede zullen we API-verzoeken naar de server sturen en het is voor ons belangrijk om de status daarvan te weten. Met deze twee zaken in gedachten, laten we de initialState aanpassen. Laat het nu gewoon een object zijn met de velden products (in eerste instantie staan hier geen gegevens, maar een lege array), status en error. Onze code voor initialState wordt nu een beetje korter:

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

Voorlopig hebben we de status op 'idle' gezet (inactiviteit), omdat we aanvankelijk geen verzoeken sturen, maar over het algemeen zal deze veranderen en kan hij waarden aannemen zoals 'loading', 'succeeded', 'failed'. Onthoud dat je voor de status die namen kunt kiezen die handig voor jou zijn.

We scrollen verder naar beneden in de code. Na de wijziging van initialState, moeten we ook de code aanpassen waarin we met deze state werken in de reducer-functies. Laten we kijken naar de code voor productAdded:

state.push(action.payload)

Nu zullen we nieuwe producten niet zomaar in de state voor producten stoppen, maar in zijn eigenschap state.products. Daarom vervangen we de bovenstaande regel door:

state.products.push(action.payload)

Dienovereenkomstig maken we dezelfde wijzigingen voor de reducer reactionClicked. In plaats van:

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

Wordt het nu:

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

Vervang zelf state door state.products in de code van de reducer productUpdated.

Open je applicatie met studenten. Open daarin het bestand studentsSlice.js. Laat je initialState nu drie eigenschappen hebben: students, status, error - pas het aan, zoals getoond in de les.

Breng de corresponderende wijzigingen aan in de code hieronder. Vervang state door state.students in de code voor je drie reducer-functies.

Nederlands
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wij gebruiken cookies voor de werking van de site, analyse en personalisatie. De verwerking van gegevens gebeurt volgens het Privacybeleid.
alles accepteren aanpassen weigeren