Creazione di un oggetto con i dati del prodotto in Redux
La funzione per creare un oggetto con il venditore la abbiamo, passiamo al prodotto. La creazione di questo oggetto sarà un po' più complessa, poiché contiene più campi dati. Iniziamo.
Apriamo la nostra applicazione con i prodotti,
e in essa il file server.js. Sotto la
funzione getRandInt scriviamo la nostra funzione
createProductData:
const createProductData = () => {}
Ora specifichiamo le proprietà di cui abbiamo bisogno. I valori
per name, price e amount
li genereremo usando getRandInt,
che abbiamo scritto nella lezione precedente:
const createProductData = () => {
return {
name: `Product${getRandInt(0, 100)}`,
price: getRandInt(100, 2000),
amount: getRandInt(1, 50),
}
}
E per generare la descrizione, useremo un'altra cosa utile. Questa è la libreria faker, che permette di generare nomi fittizi, indirizzi, email, nomi di strade, testi, ecc. in diverse lingue. Inseriamo nel terminale la seguente riga e installiamo questa libreria per la nostra applicazione:
npm install @faker-js/faker --save-dev
E poi importiamola nel nostro file:
import { faker } from '@faker-js/faker'
Usiamo la generazione di frasi,
contenenti il noto testo "riempitivo"
'Lorem ipsum'. Lascia che la
descrizione contenga da 3 a 5
di tali frasi:
const createProductData = () => {
return {
name: `Product${getRandInt(0, 100)}`,
desc: faker.lorem.sentences({ min: 3, max: 5 }),
price: getRandInt(100, 2000),
amount: getRandInt(1, 50),
}
}
Ora aggiungiamo al nostro oggetto un campo per le reazioni,
come valore gli passeremo l'oggetto generato
sul posto dal comando create (le reazioni
per ora saranno impostate a 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(),
}
}
E come ultima proprietà aggiungiamo l'oggetto venditore
già generato, che
dobbiamo assolutamente passare come parametro
alla funzione createProductData. Ecco come
appare il codice completo della funzione di creazione dell'oggetto
prodotto:
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,
}
}
Apri la tua applicazione con gli studenti. Dopo aver studiato il materiale di questa lezione, scrivi una funzione per creare un oggetto con i dati dello studente.