Redux'ta Ürün Veri Nesnesi Oluşturma
Satıcı nesnesi oluşturan fonksiyonumuz var, şimdi ürüne geçelim. Bu nesneyi oluşturmak biraz daha karmaşık olacak, çünkü daha fazla veri alanı içeriyor. Haydi başlayalım.
Ürün uygulamamızı açalım ve
içindeki server.js dosyasını açalım.
getRandInt fonksiyonunun altına
createProductData fonksiyonumuzu yazalım:
const createProductData = () => {}
Şimdi ihtiyacımız olan özellikleri yazalım.
name, price ve amount
için değerleri, bir önceki derste yazdığımız
getRandInt fonksiyonunu kullanarak
oluşturacağız:
const createProductData = () => {
return {
name: `Product${getRandInt(0, 100)}`,
price: getRandInt(100, 2000),
amount: getRandInt(1, 50),
}
}
Açıklama oluşturmak için ise başka bir kullanışlı şeyden faydalanacağız. Bu, faker kütüphanesidir ve farklı dillerde sahte isimler, adresler, e-postalar, sokak isimleri, metinler vb. oluşturmayı sağlar. Haydi terminale aşağıdaki satırı girerek bu kütüphaneyi uygulamamıza kuralım:
npm install @faker-js/faker --save-dev
Ve ardından dosyamıza import edelim:
import { faker } from '@faker-js/faker'
Şimdi içinde ünlü 'Lorem ipsum' metnini içeren
cümleler oluşturmayı kullanalım. Açıklamanın
3 ile 5 arasında bu tür cümle
içermesini sağlayalım:
const createProductData = () => {
return {
name: `Product${getRandInt(0, 100)}`,
desc: faker.lorem.sentences({ min: 3, max: 5 }),
price: getRandInt(100, 2000),
amount: getRandInt(1, 50),
}
}
Şimdi nesnemize tepkiler alanını ekleyelim,
değer olarak yerinde create komutuyla
oluşturulmuş bir nesneyi ileteceğiz (içindeki
tepkiler şimdilik 0 olacak):
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(),
}
}
Ve son özellik olarak, önceden oluşturulmuş
satıcı nesnesini ekleyeceğiz, ki bu nesneyi
mutlaka createProductData fonksiyonuna
parametre olarak iletmeliyiz. İşte ürün nesnesi
oluşturma fonksiyonunun tam kodu şöyle görünüyor:
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,
}
}
Öğrenci uygulamanızı açın. Bu dersin materyalini inceledikten sonra, öğrenci veri nesnesi oluşturmak için bir fonksiyon yazın.