Tooteandmete objekti loomine Reduxis

Funktsioon müüja objekti loomiseks meil on olemas, liigume toote juurde. Selle objekti loomine on natuke keerulisem, kuna see sisaldab rohkem andmevälju. Alustame.

Avame oma tooterakenduse, ja selles faili server.js. Allpool pärast funktsiooni getRandInt kirjutame oma funktsiooni createProductData:

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

Nüüd määrame vajalikud omadused. Väärtused jaoks name, price ja amount me genereerime kasutades getRandInt, mille me kirjutasime eelmisel tunnil:

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

Ja kirjelduse genereerimiseks kasutame veel üht kasulikku asja. See on teek faker, mis võimaldab genereerida võltsitud nimesid, aadresse, meile, tänavate nimesid, tekste jne erinevatel keeltel. Sisestame terminali järgmise käsirea ja installime selle teegi meie rakendusse:

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

Ja siis impordime oma faili:

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

Kasutame selles lausete genereerimist, mis sisaldavad tuntud teksti-"kalast" 'Lorem ipsum'. Olgu kirjelduses 3 kuni 5 sellist lauset:

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),
  }
}

Nüüd lisame oma objekti välja reaktsioonidega, väärtuseks anname sellele, genereeritud kohapeal käsuga create, objekti (reaktsioonid on seal esialgu 0):

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(),
  }
}

Ja viimase omadusena lisame juba genereeritud müüja objekti, mille peame parameetrina kindlasti edasi andma funktsioonile createProductData. Nii looks täielik toote objekti loomise funktsiooni kood:

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

Avage oma õpilaste rakendus. Pärast selle tunni materjaliiga tutvumist, kirjutage funktsioon õpilase andmete objekti loomiseks.