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(),
}
}
Соңғы қасиет ретінде біз бұрын
жасалған сатушы нысанын қосамыз, оны
біз міндетті түрде 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,
}
}
Студенттеріңізбен қолдануыңызды ашыңыз. Осы сабақ материалымен танысып, студент деректерінің нысанын құратын функция жазыңыз.