⊗jsrxPmSDSSC 35 of 57 menu

Redux-tilan rakenteen muuttaminen

Ensimmäinen vaihe, jonka toteutamme Redux-sovelluksemme vuorovaikutukseen jonkin ulkoisen palvelimen kanssa, on siihen tallennettujen tietojen haku sovelluksen käynnistyessä. Mutta ennen sitä tehkäämme joitakin muutoksia sovellukseemme.

Avataan tuotesovelluksemme ja sen sisällä tiedosto productsSlice.js. Huomioikaa initialState:n määritelmä. Alun perin tuotesliceemme productsSlice on taulukko, joka sisältää objekteja (meillä niitä on kaksi) tuotetiedoilla. Ensinnäkin, koska nyt aiomme ladata ne palvelimelta, meidän on poistettava ne initialState:sta. Toiseksi, aiomme lähettää palvelimelle API-pyyntöjä ja meille on tärkeää tietää niiden tilasta. Näitä kahta asiaa huomioiden, muutetaan initialState. Olkoon se nyt yksinkertainen objekti kentillä products (alussa täällä ei ole mitään tietoja, vaan tyhjä taulukko), status ja error. Nyt koodimme initialState:lle tulee hieman lyhyemmäksi:

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

Toistaiseksi olemme asettaneet statukseksi 'idle' (toimettomuus), sillä aluksi emme lähetä mitään pyyntöjä, ja yleensä se muuttuu ja voi saada arvoja 'loading', 'succeeded', 'failed'. Muistakaa, että statuksen merkitsemiseen voitte valita ne nimet, jotka ovat käteviä teille.

Menkäämme alemmas koodissa. initialState:n muutoksen jälkeen meidän on muutettava myös koodi, jossa työskentelemme tämän tilan kanssa reducer-funktioissa. Katsotaan koodia productAdded:lle:

state.push(action.payload)

Nyt uudet tuotteemme aiomme tallentaa ei vain tuotteiden stateen, vaan sen ominaisuuteen state.products. Siksi korvataan yllä oleva rivi seuraavalla:

state.products.push(action.payload)

Vastaavasti teemme samat muutokset reducerille reactionClicked. Sen sijaan:

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

Nyt tulee:

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

Korvatkaa itse state state.products:llä myös reducerin productUpdated koodissa.

Avatkaa opiskelijasovelluksenne. Avatkaa sen sisällä tiedosto studentsSlice.js. Olkoon nyt initialState:llänne kolme ominaisuutta: students, status, error - muunnelkaa sitä, kuten oppitunnilla on näytetty.

Tee vastaavat muutokset myös alempana koodissa. Korvaa state state.students:llä kolmen reducer-funktionne koodissa.

Suomi
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Käytämme evästeitä verkkosivuston toiminnalle, analytiikalle ja personoinnille. Tietojen käsittely tapahtuu Tietosuojakäytännön mukaisesti.
hyväksy kaikki mukauta hylkää