Стварэнне аб'екта з данымі прадукту ў 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
такiх прапананняў:
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(),
}
}
І апошняй уласцівасцю дадамо ўжо
згенераваны аб'ект прадаўца, які
мы абавязкова павінны перадаць параметрам
у функцыю 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,
}
}
Адкрыйце ваша прыкладанне са студэнтамі. Азнаёміўшыся з матэрыялам гэтага ўрока, напішыце функцыю для стварэння аб'екта з данымі студэнта.