Objekto su produkto duomenimis kūrimas Redux
Funkciją pardavėjo objekto kūrimui jau turime, pereikime prie produkto. Šio objekto kūrimas bus šiek tiek sudėtingesnis, nes jame yra daugiau duomenų laukų. Pradėkime.
Atidarykime mūsų produktų programą,
o joje failą server.js. Žemiau po
funkcijos getRandInt parašykime savo funkciją
createProductData:
const createProductData = () => {}
Dabar nurodykime mums reikalingas savybes. Reikšmes
name, price ir amount
sugeneruosime naudodami getRandInt,
kurią parašėme praeitoje pamokoje:
const createProductData = () => {
return {
name: `Product${getRandInt(0, 100)}`,
price: getRandInt(100, 2000),
amount: getRandInt(1, 50),
}
}
O norėdami sugeneruoti aprašymą, mes panaudosime dar vieną naudingą dalyką. Tai biblioteka faker, kuri leidžia generuoti netikrus vardus, adresus, el. paštus, gatvių pavadinimus, tekstus ir kt. įvairiomis kalbomis. Įveskime terminale šią eilutę ir įdiegkime šią biblioteką mūsų programai:
npm install @faker-js/faker --save-dev
Ir tada importuokime į mūsų failą:
import { faker } from '@faker-js/faker'
Panaudokime joje sakinų generavimą,
kuriame yra visiems žinomas
tekstas-"žuvis" 'Lorem ipsum'. Tegul
aprašymas sudaro nuo 3 iki 5
tokių sakinių:
const createProductData = () => {
return {
name: `Product${getRandInt(0, 100)}`,
desc: faker.lorem.sentences({ min: 3, max: 5 }),
price: getRandInt(100, 2000),
amount: getRandInt(1, 50),
}
}
Dabar pridėkime į mūsų objektą lauką su reakcijomis,
jo reikšmę perduosime, sugeneruotą
vietoje komanda create, objektą (reakcijos
kol kas jame bus 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(),
}
}
Ir paskutine savybe pridėkime jau
sugeneruotą pardavėjo objektą, kurį
mes būtinai turime perduoti parametru
į funkciją createProductData. Štai taip
atrod visas produkto objekto kūrimo funkcijos kodas:
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,
}
}
Atidarykite savo studentų programą. Susipažinę su šios pamokos medžiaga, parašykite funkciją studento duomenų objekto kūrimui.