Reduxda mahsulot ma'lumotlari ob'ektini yaratish

Sotuvchi bilan ob'ekt yaratish funktsiyasi bizda bor, endi mahsulotga o'tamiz. Ushbu ob'ektni yaratish biroz murakkabroq bo'ladi, chunki unda ko'proq ma'lumotlar maydonlari mavjud. Keling, boshlaymiz.

Keling, mahsulotlar ilovamizni ochaylik, va unda server.js faylini ochaylik. Pastda getRandInt funktsiyasidan keyin bizning funktsiyamizni yozamiz createProductData:

api/server.jsconst createProductData = () => {}

Endi kerakli xususiyatlarni yozamiz. Qiymatlar name, price va amount uchun biz getRandInt yordamida yaratamiz, biz oldingi darsda yozgan:

api/server.jsconst createProductData = () => {
  return {
    name: `Product${getRandInt(0, 100)}`,
    price: getRandInt(100, 2000),
    amount: getRandInt(1, 50),
  }
}

Tavsifni yaratish uchun esa, biz yana bir foydali narsadan foydalanamiz. Bu faker kutubxonasi, soxta ismlar, manzillar, pochta manzillari, ko'cha nomlari, matnlar va boshqalarni yaratish imkonini beradi. turli tillarda. Keling, terminalda quyidagi qatorni kiritamiz va ushbu kutubxonani o'rnatamiz bizning ilovamiz uchun:

terminalnpm install @faker-js/faker --save-dev

So'ngra faylimizga import qilamiz:

api/server.jsimport { faker } from '@faker-js/faker'

Keling, unda gaplashuvli matnni yaratishdan foydalanaylik 'Lorem ipsum' matnini o'z ichiga olgan. Tavsif 3 dan 5 gacha shunday gaplashuvlarni o'z ichiga olsin:

api/server.jsconst createProductData = () => {
  return {
    name: `Product${getRandInt(0, 100)}`,
    desc: faker.lorem.sentences({ min: 3, max: 5 }),
    price: getRandInt(100, 2000),
    amount: getRandInt(1, 50),
  }
}

Endi ob'ektimizga reaktsiyalar maydonini qo'shamiz, uning qiymati sifatida biz create komandasi bilan joyida yaratilgan ob'ektni beramiz (reaktsiyalar hozirda unda 0 bo'ladi):

api/server.jsconst 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(),
  }
}

Va oxirgi xususiyat sifatida allaqachon yaratilgan sotuvchi ob'ektini qo'shamiz, biz uni parametr sifatida createProductData funktsiyasiga uzatishimiz shart. Mana mahsulot ob'ektini yaratish funktsiyasining to'liq kodi:

api/server.jsconst 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,
  }
}
Задание 1

Talabalar ilovingizni oching. Ushbu dars materiali bilan tanishib chiqqaningizdan so'ng, talaba ma'lumotlari bilan ob'ekt yaratish funktsiyasini yozing.