⊗jsrtPmRtGSP 35 of 47 menu

Tải dữ liệu trang theo tham số URL từ kho lưu trữ trong React Router

Bây giờ chúng ta có thể thêm sản phẩm vào ứng dụng của mình. Hãy khởi chạy ứng dụng, thêm vài sản phẩm bằng nút. Nếu bây giờ chúng ta nhấp vào chính các sản phẩm trong danh sách, thì sẽ thấy rằng mỗi sản phẩm vẫn còn có một trang tĩnh giống nhau, và chúng ta sẽ làm việc với nó trong bài học này và các bài học tiếp theo.

Cũng cần lưu ý một điểm nữa. Nói chung, toàn bộ URL được chia thành các phân đoạn - đây là những phần của URL nằm giữa các ký tự /. Có lẽ bạn còn nhớ rằng khi tạo ứng dụng này, chúng ta đã chỉ định đường dẫn 'products/:productId', vậy thì :productId ở đây được gọi là phân đoạn động. Trước nó đặt ký tự ':'. Các giá trị trong phân đoạn này sẽ thay đổi, chính chúng sẽ đi vào các tham số URL (URL Params hoặc params), được truyền cho trình tải dữ liệu dưới một khóa nhất định, trong trường hợp của chúng ta đó sẽ là params.productId.

Hãy nhìn vào thanh địa chỉ trong trình duyệt, khi bạn nhấp vào các sản phẩm trong danh sách. Bạn sẽ thấy, rằng phân đoạn cuối cùng trong thanh địa chỉ thay đổi, chính những giá trị này sẽ đi vào trình tải dữ liệu. Và các sản phẩm của chúng ta trong kho lưu trữ có một id duy nhất do chúng ta tạo ra, do đó sản phẩm mà chúng ta cần sẽ được tải lên.

Và bây giờ sau một chút lạc đề, chúng ta hãy cuối cùng làm việc với trang sản phẩm, cụ thể là - với việc tải dữ liệu từ kho lưu trữ.

Hãy lặp lại quy trình quen thuộc. Đầu tiên, trong forStorage.js, hãy thêm hàm getProduct để lấy dữ liệu của một sản phẩm cụ thể từ kho lưu trữ theo id. Ở đây chúng ta sẽ truyền vào hàm id và, tương ứng, nếu sản phẩm của chúng ta được "lưu trong bộ nhớ đệm", thì sẽ được hiển thị ngay lập tức mà không có độ trễ:

export async function getProduct(id) { await someNetwork(`product:${id}`); }

Tiếp theo, chúng ta cần lấy mảng sản phẩm và trong số đó tìm sản phẩm của chúng ta theo id đã truyền:

export async function getProduct(id) { await someNetwork(`product:${id}`); let products = await localforage.getItem('products'); let product = products.find((product) => product.id === id); return product ?? null; }

Hãy lấy ứng dụng được tạo bởi bạn trong các bài tập của các bài học trước. Sử dụng tài liệu của bài học, hãy tạo trong forStorage.js hàm getStudent để lấy dữ liệu sinh viên theo id.

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