Skapa ett objekt med produktdata i Redux
Vi har en funktion för att skapa ett objekt med säljare, låt oss gå vidare till produkten. Att skapa det här objektet kommer att vara lite mer komplext eftersom det innehåller fler datafält. Låt oss börja.
Låt oss öppna vår produktapplikation,
och i den filen server.js. Nedan efter
funktionen getRandInt skriver vi vår funktion
createProductData:
const createProductData = () => {}
Låt oss nu definiera de egenskaper vi behöver. Värden
för name, price och amount
kommer vi att generera med hjälp av getRandInt,
som vi skrev i förra lektionen:
const createProductData = () => {
return {
name: `Product${getRandInt(0, 100)}`,
price: getRandInt(100, 2000),
amount: getRandInt(1, 50),
}
}
Och för att generera en beskrivning kommer vi att använda oss av en annan användbar sak. Det är biblioteket faker, som gör det möjligt att generera falska namn, adresser, e-post, gatunamn, texter etc. på olika språk. Låt oss skriva följande rad i terminalen och installera det här biblioteket för vår applikation:
npm install @faker-js/faker --save-dev
Och sedan importera det till vår fil:
import { faker } from '@faker-js/faker'
Låt oss använda dess meningsgenerering,
som innehåller den välkända
"latin"-texten 'Lorem ipsum'. Låt
beskrivningen innehålla från 3 till 5
sådana meningar:
const createProductData = () => {
return {
name: `Product${getRandInt(0, 100)}`,
desc: faker.lorem.sentences({ min: 3, max: 5 }),
price: getRandInt(100, 2000),
amount: getRandInt(1, 50),
}
}
Låt oss nu lägga till ett fält för reaktioner i vårt objekt,
dess värde kommer vi att tilldela, genererat
på plats med kommandot create, ett objekt (reaktioner
kommer initialt att vara 0 vardera):
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(),
}
}
Och som sista egenskap lägger vi till det redan
genererade säljarobjektet, som
vi måste skicka som en parameter
till funktionen createProductData. Så här
ser den fullständiga koden för funktionen som skapar produktobjektet ut:
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,
}
}
Öppna din studentapplikation. Efter att ha tagit del av materialet i denna lektion, skriv en funktion för att skapa ett objekt med studentdata.