⊗jsrxPmRDPPR 22 of 57 menu

Tuoteselain Reduxissa

Edellisellä tunnilla teimme erillisen sivun tuotteelle. Nyt meidän on tehtävä niin, että kun painamme mitä tahansa painiketta, sivumme ilmestyy selaimessa.

Aluksi kiinnitetään sille osoite, jossa se näytetään. Avataan tiedosto App.jsx, jossa määrittelemme reitit, ja lisätään children:een vielä yksi lapsireitti (älä unohda tuoda ProductPage.jsx). Määritetään polku ja komponentti, joka nostetaan esiin:

{ path: '/products/:productId', element: <ProductPage />, },

Avataan nyt ProductsList.jsx kansiossa products ja muutetaan koodia hieman dispProducts:lle. Nyt meillä on erillinen sivu, jossa on täydelliset tiedot jokaisesta tuotteesta. Tämä tarkoittaa, että tuotelistassa näytämme vain tuotteen nimen ja lyhennetyn kuvauksen. Lisäämme myös linkin navigointielementin muodossa Link reitittimen kirjastosta, jota napsauttamalla pääsee tuotesivulle. Lisätään myös div:lle luokka product-excerpt erottamaan tuotteet toisistaan. Nyt dispProducts:n koodimme on tällainen:

const dispProducts = products.map((product) => ( <div key={product.id} className="product-excerpt"> <h3>{product.name}</h3> <p>{product.desc.substring(0, 100)}</p> <Link to={`/products/${product.id}`} className="link-btn"> view </Link> </div> ))

Tuodaan Link:

import { Link } from 'react-router-dom'

Ja lisätään tyylejä luokille link-btn ja product-excerpt tiedostoon index.css:

.product-excerpt { margin-top: 30px; border: 1px solid gray; border-radius: 5px; padding: 10px; } .link-btn { border: 1.5px solid gray; border-radius: 10px; background-color: coral; color: black; padding: 1px 12px 1px 12px; }

Lopuksi tehdään myös vasemmassa valikossa olevasta linkistä, joka johtaa tuotelistasivulle, toimiva, jotta pääsemme sinne mistä tahansa muusta paikasta. Avataan root.jsx ja korvataan tämä koodirivi:

<a>Products</a>

Seuraavalla:

<NavLink to="/products" end> Products </NavLink>

Älä myöskään unohda tuoda NavLink React-reitittimen kirjastosta:

import { Outlet, NavLink } from 'react-router-dom'

Käynnistetään sovelluksemme. Nyt voimme päästä minkä tahansa tuotteen tiedoille napsauttamalla katselupainiketta. Yritä nyt lisätä uusi tuote ja katsoa sen tietoja erillisellä sivulla napsauttamalla katselupainiketta. Myös nyt, palataksesi tuotelistaan riittää, että napsautat 'Products' vasemmassa valikossa. Ollessasi eri sivuilla, katso miten selaimen osoiterivillä oleva URL muuttuu.

Avaa opiskelijasovelluksesi. Tiedostossa App.jsx luo vielä yhden lapsireitin opiskelijasivulle.

Tiedostossa StudentsList.jsx tee koodiin muutoksia dispStudents:lle, kuten oppitunnilla on esitetty.

Tee niin, että linkki 'Students' vasemmassa valikossa johtaa opiskelijalista-sivulle. Tarkista, että kaikki toimii.

Katso miten selaimen osoiterivillä oleva arvo muuttuu riippuen siitä, millä sivulla olet parhaillaan.

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