Vytvorenie objektu s údajmi produktu v Reduxe
Funkciu na vytvorenie objektu s predajcom už máme, prejdime k produktu. Vytvorenie tohto objektu bude o čosi zložitejšie, pretože obsahuje viac polí s údajmi. Poďme na to.
Otvorme našu aplikáciu s produktmi,
a v nej súbor server.js. Nižšie po
funkcii getRandInt napíšme našu funkciu
createProductData:
const createProductData = () => {}
Teraz zadefinujme potrebné vlastnosti. Hodnoty
pre name, price a amount
vygenerujeme pomocou getRandInt,
ktorú sme napísali v minulej lekcii:
const createProductData = () => {
return {
name: `Product${getRandInt(0, 100)}`,
price: getRandInt(100, 2000),
amount: getRandInt(1, 50),
}
}
A na vygenerovanie opisu použijeme ďalšiu užitočnú vec. Je to knižnica faker, ktorá umožňuje generovať falošné mená, adresy, e-maily, názvy ulíc, texty atď. v rôznych jazykoch. Zadajme do terminálu nasledujúci príkaz a nainštalujme túto knižnicu pre našu aplikáciu:
npm install @faker-js/faker --save-dev
A potom ju importujme do nášho súboru:
import { faker } from '@faker-js/faker'
Využime v nej generovanie
viet, ktoré obsahujú známy
text-"rybu" 'Lorem ipsum'. Nech
opis obsahuje od 3 do 5
takýchto viet:
const createProductData = () => {
return {
name: `Product${getRandInt(0, 100)}`,
desc: faker.lorem.sentences({ min: 3, max: 5 }),
price: getRandInt(100, 2000),
amount: getRandInt(1, 50),
}
}
Teraz pridajme do nášho objektu pole s reakciami,
hodnotou mu priradíme, vygenerovaný
na mieste príkazom create, objekt (reakcie
zatiaľ v ňom budú po 0):
const createProductData = () => {
return {
name: `Product${getRandInt(0, 100)}`,
desc: faker.lorem.sentences({ min: 3, max: 5 }),
price: getRandInt(100, 2000),
amount: getRandInt(1, 50),
reactions: db.reaction.create(),
}
}
A ako poslednú vlastnosť pridajme už
vygenerovaný objekt predajcu, ktorý
musíme nevyhnutne odovzdať parametrom
do funkcie createProductData. Takto
vyzerá úplný kód funkcie na vytvorenie objektu
produktu:
const createProductData = (seller) => {
return {
name: `Product${getRandInt(0, 100)}`,
desc: faker.lorem.sentences({ min: 3, max: 5 }),
price: getRandInt(100, 2000),
amount: getRandInt(1, 50),
reactions: db.reaction.create(),
seller,
}
}
Otvorte svoju aplikáciu so študentmi. Po oboznámení sa s materiálom tejto lekcie napíšte funkciu na vytvorenie objektu s údajmi študenta.