Креирање објекта са подацима о производу у Redux-у
Функција за креирање објекта са продавцом постоји, пређимо на производ. Креирање овог објекта ће бити мало сложеније, пошто садржи више поља са подацима. Почнимо.
Отворимо нашу апликацију са производима,
а у њој фајл server.js. Испод
функције getRandInt написаћемо нашу функцију
createProductData:
const createProductData = () => {}
Сада ћемо дефинисати потребна својства. Вредности
за name, price и amount
генерисаћемо помоћу getRandInt,
коју смо написали на прошлом часу:
const createProductData = () => {
return {
name: `Product${getRandInt(0, 100)}`,
price: getRandInt(100, 2000),
amount: getRandInt(1, 50),
}
}
А за генерисање описа, искористићемо још једну корисну ствар. То је библиотека faker, која омогућава генерисање лажних имена, адреса, и-мејлова, назива улица, текстова и сл. на различитим језицима. Укуцајмо у терминалу следећу линију и инсталирајмо ову библиотеку за нашу апликацију:
npm install @faker-js/faker --save-dev
А затим импортујмо у наш фајл:
import { faker } from '@faker-js/faker'
Искористићемо њену функцију за генерисање
реченица које садрже познати
текст-"рибу" 'Lorem ipsum'. Нека
опис садржи од 3 до 5
таквих реченица:
const createProductData = () => {
return {
name: `Product${getRandInt(0, 100)}`,
desc: faker.lorem.sentences({ min: 3, max: 5 }),
price: getRandInt(100, 2000),
amount: getRandInt(1, 50),
}
}
Сада ћемо додати у наш објекат поље за реакције,
као вредност проследићемо објекат генерисан
на лицу места командом create (реакције
ће за сада у њему бити 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(),
}
}
И као последње својство додаћемо већ
генерисан објекат продавца, који
mорамо обавезно проследити као параметар
функцији createProductData. Ево како
изгледа комплетан код функције за креирање објекта
производа:
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,
}
}
Отворите вашу апликацију са студентима. Упознавши се са материјалом ове лекције, напишите функцију за креирање објекта са подацима о студенту.