⊗jsrxPmSDSSC 35 of 57 menu

Ændring af statestrukturen i Redux

Den første fase, som vi vil implementere for interaktion mellem vores Redux-applikation og en ekstern server, er at hente dataene, der er lagret på den, når applikationen startes. Men lad os først foretage nogle ændringer i vores applikation.

Lad os åbne vores produktapplikation, og i den filen productsSlice.js. Læg mærke til definitionen af initialState. Oprindeligt er vores slice med produkter productsSlice - et array, hvor der er objekter (i vores tilfælde to) med produktdata. For det første, da vi nu vil hente dem fra en server, skal vi fjerne dem fra initialState. For det andet vil vi sende API-forespørgsler til serveren, og det vil være vigtigt for os at kende deres status. I lyset af disse to ting, lad os ændre initialState. Lad det nu være et simpelt objekt med felterne products (initielt vil der ikke være nogen data her, men et tomt array), status og error. Nu vil vores kode for initialState blive lidt kortere:

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

Indtil videre har vi sat status til 'idle' (hvile), da vi oprindeligt ikke sender nogen forespørgsler, men generelt vil den ændre sig og kan antage værdier som 'loading', 'succeeded', 'failed'. Husk, at for at angive status kan du vælge de navne, som er bekvemme for dig.

Lad os scrolle længere ned i koden. Efter ændringen af initialState, skal vi også ændre den kode, hvor vi arbejder med denne state i reducer-funktionerne. Lad os se på koden for productAdded:

state.push(action.payload)

Nu vil vi lægge nye produkter ikke bare i state for produkter, men i dens egenskab state.products. Derfor skal vi erstatte den ovenstående linje med:

state.products.push(action.payload)

Lad os lave de samme ændringer for reduceren reactionClicked. I stedet for:

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

Vil det nu være:

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

Erstat selv state med state.products i koden for reduceren productUpdated.

Åbn din applikation med studerende. Åbn filen studentsSlice.js i den. Lad din initialState nu have tre egenskaber: students, status, error - omstrukturer den, som vist i lektionen.

Foretag de tilsvarende ændringer længere nede i koden. Erstat state med state.students i koden for dine tre reducer-funktioner.

Dansk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruger cookies til webstedets funktion, analyse og personalisering. Behandling af data foregår i henhold til Fortrolighedspolitikken.
accepter alle tilpas afvis