⊗jsrxPmWFLS 15 of 57 menu

Form và State cục bộ trong Redux

Trong các bài học trước, chúng ta đã học cách lấy dữ liệu từ store và hiển thị chúng trong React component. Trong bài học này, chúng ta sẽ bắt đầu thêm dữ liệu mới. Chúng ta sẽ làm điều này bằng cách sử dụng biểu mẫu, sau khi điền vào, người bán có thể thêm sản phẩm mới.

Hãy bắt đầu với việc không phải lúc nào cũng có lý do để sử dụng state toàn cục Redux. Có những trường hợp chúng ta có thể tạo ra các state cục bộ cho nhu cầu của mình. Chúng ta sẽ gọi các state cục bộ là các state được sử dụng bên trong một component cụ thể cho các nhu cầu kỹ thuật. Ví dụ, để ẩn hoặc hiển thị một cái gì đó khi nhấn nút.

Trong trường hợp của chúng ta, người dùng sẽ nhập dữ liệu vào biểu mẫu và, tất nhiên, chúng ta sẽ cần các state cho việc này. Chúng ta có thể sử dụng state Redux toàn cục, nhưng điều đó không có ý nghĩa, vì các state của chúng ta sẽ chỉ hoạt động ở một nơi duy nhất trong ứng dụng cho biểu mẫu thêm sản phẩm. Quy tắc chính cần tuân theo là - không được để các state cục bộ hoạt động bên ngoài component mà chúng được tạo, và không được liên quan đến store trong bất kỳ trường hợp nào. Thực hành như vậy thường được sử dụng khi tạo biểu mẫu.

Hãy mở thư mục products của ứng dụng sản phẩm của chúng ta, tạo trong đó tệp NewProductForm.jsx và import hook useState vào đó:

import { useState } from 'react'

Bây giờ hãy tạo chính component với biểu mẫu và khai báo trong đó các state thông thường, như chúng ta đã từng làm trước đây trong React. Chúng ta cần các state để làm việc với tên, mô tả, giá và số lượng sản phẩm:

export const NewProductForm = () => { const [name, setName] = useState('') const [desc, setDesc] = useState('') const [price, setPrice] = useState(0) const [amount, setAmount] = useState(0) }

Tiếp theo, thêm xử lý tiêu chuẩn cho mỗi trường khi người dùng nhập dữ liệu:

const onNameChanged = (e) => setName(e.target.value) const onDescChanged = (e) => setDesc(e.target.value) const onPriceChanged = (e) => setPrice(e.target.value) const onAmountChanged = (e) => setAmount(e.target.value)

Và sau đó trả về trong component phần giao diện với tiêu đề và biểu mẫu trống:

return ( <div> <h2>Thêm Sản Phẩm Mới</h2> <form> </form> </div> )

Hãy mở ứng dụng sinh viên của bạn. Tạo tệp NewStudentForm.jsx trong thư mục students. Khai báo trong component NewStudentForm các state cục bộ cho các trường bạn cần, viết phần xử lý cho mỗi trường, như đã trình bày trong bài học.

Hãy trả về trong component NewStudentForm phần giao diện, chứa tiêu đề và một biểu mẫu trống.

Tiếng Việt
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbek
Chúng tôi sử dụng cookie để vận hành trang web, phân tích và cá nhân hóa. Việc xử lý dữ liệu được thực hiện tuân theo Chính sách bảo mật.
chấp nhận tất cả tùy chỉnh từ chối