⊗jsrxPmRDPP 21 of 57 menu

Tuotesivu Reduxissa

Tällä oppitunnilla teemme erillisen sivun tietyn tuotteen tietojen näyttämiseen.

Avataan tuotesovelluksemme ja luodaan kansioon products tiedosto ProductPage.jsx. Kuten muistat, jokaisella tuotteellamme on yksilöllinen id. Tämän id:n avulla voimme luoda yksilöllisen URL-osoitteen jokaiselle tuotteelle. Perinteisesti se näyttää tältä: /products/id123. Ja id sisältyy sen dynaamiseen osaan (reitityksestä huolehdimme hieman myöhemmin).

Joten, luodaan tiedostoon ProductPage.jsx tyhjä komponentti ProductPage:

export const ProductPage = () => {}

Ensimmäinen asia, jonka teemme tässä - hyödynnämme useParams -hookkia, jotta saamme dynaamisen osan URL-osoitteesta tuotesivulle, jolla vihtaamme:

export const ProductPage = () => { let params = useParams() const { productId } = params }

Seuraavaksi haetaan saadun id:n perusteella oikea tuote products -slicesta storeen, käyttäen jo tuttua useSelector -hookkia:

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

Älä unohda tuoda molemmat hookit tiedostoon:

import { useSelector } from 'react-redux' import { useParams } from 'react-router-dom'

Jos tarvitsemaamme tuotetta ei löydy (esimerkiksi käyttäjä syötti virheellisen osoitteen), näytämme siitä tiedon ruudulla. Tässä vaiheessa ProductPage -komponentin koodin tulisi näyttää tältä:

export const ProductPage = () => { let params = useParams() const { productId } = params const product = useSelector((state) => state.products.find((product) => product.id === productId) ) if (!product) { return <p>Tällaista tuotetta ei löydy</p> } }

Ja meidän on enää vain näytettävä haetut tuotetiedot käyttöliittymässä:

return ( <div> <h2>{product.name}</h2> <p>Kuvaus: {product.desc}</p> <p>Hinta: {product.price}</p> <p>Määrä: {product.amount}</p> </div> )

Avaa opiskelijasovelluksesi. Luo kansioon students tiedosto StudentPage.jsx, jossa saat ja näytät valitun opiskelijan tiedot.

react-redux useSelector -hookin avulla haetaan tarvittavat tiedot opiskelijasta, kuten oppitunnilla näytetty.

Näytä komponentissa haetut opiskelijan tiedot ruudulla.

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ää