Produkta datu objekta izveide Redux
Funkcija pārdevēja objekta izveidei mums ir, pāriesim pie produkta. Šī objekta izveide būs mazliet sarežģītāka, jo tas satur vairāk datu lauku. Sāksim.
Atvērsim mūsu produktu lietotni,
un tajā failu server.js. Zem
funkcijas getRandInt uzrakstīsim mūsu funkciju
createProductData:
api/server.jsconst createProductData = () => {}
Tagad norādīsim vajadzīgās īpašības. Vērtības
name, price un amount
mēs ģenerēsim, izmantojot getRandInt,
ko mēs uzrakstījām iepriekšējā nodarbībā:
api/server.jsconst createProductData = () => {
return {
name: `Product${getRandInt(0, 100)}`,
price: getRandInt(100, 2000),
amount: getRandInt(1, 50),
}
}
Un, lai ģenerētu aprakstu, mēs izmantosim vēl vienu noderīgu lietu. Šī ir bibliotēka faker, kas ļauj ģenerēt viltus vārdus, adreses, e-pastus, ielu nosaukumus, tekstus utt. dažādās valodās. Ievadīsim terminālī šādu rindiņu un instalēsim šo bibliotēku mūsu lietotnei:
terminalnpm install @faker-js/faker --save-dev
Un tad importēsim mūsu failā:
api/server.jsimport { faker } from '@faker-js/faker'
Izmantosim tajā teikumu ģenerēšanu,
satur pazīstamu
tekstu-"zivi" 'Lorem ipsum'. Lai
apraksts satur no 3 līdz 5
šādus teikumus:
api/server.jsconst createProductData = () => {
return {
name: `Product${getRandInt(0, 100)}`,
desc: faker.lorem.sentences({ min: 3, max: 5 }),
price: getRandInt(100, 2000),
amount: getRandInt(1, 50),
}
}
Tagad pievienosim mūsu objektam lauku ar reakcijām,
tā vērtībai mēs padod, ģenerētu
uz vietas ar komandu create, objektu (reakcijas
pagaidām tajā būs pa 0):
api/server.jsconst 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(),
}
}
Un kā pēdējo īpašību pievienosim jau
ģenerēto pārdevēja objektu, kuru
mums obligāti jānodod kā parametru
funkcijai createProductData. Šādi
izskatās pilns produkta objekta izveides funkcijas kods:
api/server.jsconst 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,
}
}
Atveriet savu studentu lietotni. Iepazīstoties ar šīs nodarbības materiālu, uzrakstiet funkciju studenta datu objekta izveidei.