⊗jsrxPmRDAL 31 of 57 menu

Dodajanje dodatne logike v aplikacijo Redux

V tem poglavju bomo dodali zadnjo komponento k naši aplikaciji. Če smo natančni, bomo izdelku dodali odziv uporabnika, ki ga je bodisi naročil ali prebral informacije o njem.

Odprimo našo aplikacijo s produkti. Kot v primeru imena prodajalca, moramo pokazati odzive uporabnikov na več mestih v aplikaciji. Kar pomeni, da bomo potrebovali ločeno komponento. Zato začnimo tako, da v mapi products ustvarimo datoteko UserReactions.jsx. Za začetek vanjo vpišimo objekt, v katerem bodo naši odzivi:

const reactionObj = { good: '+', soso: '+/-', bad: '-', }

Spodaj pa začnimo pisati samo funkcijo, v katero bomo podali slice product:

export const UserReactions = ({ product }) => {}

Zdaj v zavitih oklepajih napišimo telo funkcije UserReactions. Za to iterirajmo s pomočjo map pare ključ-vrednost našega reactionObj, za vsakogar pridobimo oznako za gumb ('+', '+/-' ali '-') in številčno vrednost določenega odziva (to bomo potegnili iz product v store po imenu odziva):

const userReactions = Object.entries(reactionObj).map(([name, image]) => { return ( <button key={name} type="button" className="reaction-button"> {image} {product.reactions[name]} </button> ) })

In po tem na koncu kode funkcije vrnimo HTML z gumbi userReactions:

return <div>{userReactions}</div>

Ter dodajmo še nekaj stilov v index.css:

.reaction-button { margin-right: 10px; margin-bottom: 10px; }

Če se vam to zdi nekoliko zapleteno, ne skrbite, kasneje vam bo postalo veliko bolj razumljivo.

Odprite vašo aplikacijo s študenti. V vaši aplikaciji bo možnost za uporabnike, da med študenti izberejo vodjo skupine in kapetana športne ekipe. Zato, ko preučite gradivo lekcije, ustvarite v mapi students datoteko UserVotes.jsx. Na začetku datoteke ustvarite objekt votesObj, v katerem boste imeli dve lastnosti - leader in captain, z vrednostmi GL in TC, kot oznako za gumbe.

Spodaj v datoteki po definiciji objekta votesObj napišite kodo funkcije UserVotes, po analogiji z gradivom iz te lekcije.

Slovenščina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Za delovanje spletnega mesta, analitiko in personalizacijo uporabljamo piškotke. Obdelava podatkov poteka v skladu s Politiko zasebnosti.
sprejmi vse nastavi zavrni