Vytvoření objektu s daty produktu v Reduxu
Funkci pro vytvoření objektu s prodejcem máme, přejděme k produktu. Vytvoření tohoto objektu bude o něco složitější, protože obsahuje více datových polí. Pojďme na to.
Pojďme otevřít naši aplikaci s produkty,
a v ní soubor server.js. Níže pod
funkcí getRandInt napíšeme naši funkci
createProductData:
const createProductData = () => {}
Nyní nastavíme potřebné vlastnosti. Hodnoty
pro name, price a amount
vygenerujeme pomocí getRandInt,
kterou jsme napsali v minulé lekci:
const createProductData = () => {
return {
name: `Product${getRandInt(0, 100)}`,
price: getRandInt(100, 2000),
amount: getRandInt(1, 50),
}
}
A pro vygenerování popisu využijeme ještě jednu užitečnou věc. Je to knihovna faker, která umožňuje generovat falešná jména, adresy, e-maily, názvy ulic, texty atd. v různých jazycích. Pojďme v terminálu zadat následující příkaz a nainstalovat tuto knihovnu pro naši aplikaci:
npm install @faker-js/faker --save-dev
A poté importujeme do našeho souboru:
import { faker } from '@faker-js/faker'
Pojďme využít generování
vět obsahujících známý
text "Lorem ipsum". Ať
popis obsahuje od 3 do 5
takových vět:
const createProductData = () => {
return {
name: `Product${getRandInt(0, 100)}`,
desc: faker.lorem.sentences({ min: 3, max: 5 }),
price: getRandInt(100, 2000),
amount: getRandInt(1, 50),
}
}
Nyní přidáme do našeho objektu pole s reakcemi,
hodnotou mu předáme, vygenerovaný
na místě příkazem create, objekt (reakce
zatím v něm budou 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 jako poslední vlastnost přidáme již
vygenerovaný objekt prodejce, který
musíme předat jako parametr
funkci createProductData. Takto
vypadá úplný kód funkce pro vytvoření 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,
}
}
Otevřete vaši aplikaci se studenty. Po seznámení s materiálem této lekce napište funkci pro vytvoření objektu s daty studenta.