Tạo đối tượng dữ liệu sản phẩm trong Redux
Hàm tạo đối tượng với người bán chúng ta đã có, hãy chuyển sang sản phẩm. Việc tạo đối tượng này sẽ phức tạp hơn một chút vì nó chứa nhiều trường dữ liệu hơn. Hãy bắt đầu.
Hãy mở ứng dụng sản phẩm của chúng ta,
và trong đó mở tệp server.js. Bên dưới sau
hàm getRandInt, hãy viết hàm của chúng ta
createProductData:
const createProductData = () => {}
Bây giờ hãy khai báo các thuộc tính chúng ta cần. Giá trị
cho name, price và amount
chúng ta sẽ tạo bằng getRandInt,
mà chúng ta đã viết ở bài học trước:
const createProductData = () => {
return {
name: `Product${getRandInt(0, 100)}`,
price: getRandInt(100, 2000),
amount: getRandInt(1, 50),
}
}
Còn để tạo mô tả, chúng ta sẽ sử dụng một công cụ hữu ích khác. Đó là thư viện faker, cho phép tạo tên giả, địa chỉ, email, tên đường, văn bản, v.v. bằng nhiều ngôn ngữ khác nhau. Hãy nhập vào terminal dòng lệnh sau và cài đặt thư viện nhỏ này cho ứng dụng của chúng ta:
npm install @faker-js/faker --save-dev
Và sau đó import vào tệp của chúng ta:
import { faker } from '@faker-js/faker'
Hãy sử dụng tính năng tạo
câu chứa văn bản "cá" nổi tiếng
'Lorem ipsum' trong đó. Hãy để
mô tả chứa từ 3 đến 5
câu như vậy:
const createProductData = () => {
return {
name: `Product${getRandInt(0, 100)}`,
desc: faker.lorem.sentences({ min: 3, max: 5 }),
price: getRandInt(100, 2000),
amount: getRandInt(1, 50),
}
}
Bây giờ hãy thêm vào đối tượng của chúng ta một trường với các reaction (phản ứng),
chúng ta sẽ truyền cho nó giá trị là một đối tượng được tạo
ngay tại chỗ bằng lệnh create (các reaction
trong đó tạm thời sẽ là 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(),
}
}
Và thuộc tính cuối cùng, hãy thêm
đối tượng người bán đã được tạo, mà
chúng ta bắt buộc phải truyền dưới dạng tham số
vào hàm createProductData. Đây là
mã đầy đủ của hàm tạo đối tượng
sản phẩm:
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,
}
}
Hãy mở ứng dụng về sinh viên của bạn. Sau khi tìm hiểu tài liệu của bài học này, hãy viết hàm để tạo đối tượng với dữ liệu sinh viên.