Kreiranje objekta sa podacima o proizvodu u Redux-u
Funkciju za kreiranje objekta sa prodavcem imamo, pređimo na proizvod. Kreiranje ovog objekta će biti malo složenije, pošto sadrži više polja sa podacima. Počnimo.
Otvorimo našu aplikaciju sa proizvodima,
a u njoj fajl server.js. Ispod nakon
funkcije getRandInt napišimo našu funkciju
createProductData:
const createProductData = () => {}
Sada propišimo potrebne osobine. Vrednosti
za name, price i amount
ćemo generisati pomoću getRandInt,
koju smo napisali na prošloj lekciji:
const createProductData = () => {
return {
name: `Product${getRandInt(0, 100)}`,
price: getRandInt(100, 2000),
amount: getRandInt(1, 50),
}
}
A da bismo generisali opis, mi ćemo iskoristiti još jednu korisnu stvar. To je biblioteka faker, koja omogućava generisanje lažnih imena, adresa, mejlova, naziva ulica, tekstova i sl. na raznim jezicima. Upišimo u terminalu sledeću liniju i instalirajmo ovu biblioteku za našu aplikaciju:
npm install @faker-js/faker --save-dev
A zatim importujmo u naš fajl:
import { faker } from '@faker-js/faker'
Iskoristimo u njoj generisanje
rečenica, koje sadrže poznati
tekst-"ribu" 'Lorem ipsum'. Neka
opis sadrži od 3 do 5
takvih rečenica:
const createProductData = () => {
return {
name: `Product${getRandInt(0, 100)}`,
desc: faker.lorem.sentences({ min: 3, max: 5 }),
price: getRandInt(100, 2000),
amount: getRandInt(1, 50),
}
}
Sada dodajmo u naš objekat polje sa reakcijama,
vrednost ćemo mu proslediti, generisanu
na mestu komandom create, objekat (reakcije
za sada u njemu će biti 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(),
}
}
I kao poslednju osobinu dodajmo već
generisani objekat prodavca, koji
moramo da prosledimo kao parametar
u funkciju createProductData. Ovako
izgleda kompletan kod funkcije za kreiranje objekta
proizvoda:
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,
}
}
Otvorite vašu aplikaciju sa studentima. Upoznavši se sa materijalom ove lekcije, napišite funkciju za kreiranje objekta sa podacima o studentu.