⊗jsrtPmRtULD 31 of 47 menu

Sử dụng dữ liệu nhận được từ loader trong React Router

Ở bài học trước, chúng ta đã lấy dữ liệu từ kho lưu trữ bằng cách sử dụng loader. Để sử dụng dữ liệu này, chúng ta dùng hook useLoaderData. Hãy mở tệp root.jsx và thêm hook vào phần import:

import { Outlet, Link, useLoaderData } from 'react-router-dom';

Trong hàm Root, giờ đây chúng ta sẽ nhận dữ liệu vào hằng số products và làm việc với nó. Nếu chúng ta có một số sản phẩm, danh sách sẽ được hiển thị, nếu không, chúng ta sẽ xuất ra đoạn văn 'no products here ...'. Trong thẻ nav, giờ đây chúng ta sử dụng vòng lặp tiêu chuẩn để xuất các sản phẩm đã nhận. Mỗi phần tử sẽ được bọc trong component Link và địa chỉ sẽ là của riêng mỗi phần tử (chúng ta sẽ nói về điều này sau). Theo đó, nếu sản phẩm không có tên, thì mặc định sẽ xuất ra 'Unnamed'. Vậy, với những điều đã nói ở trên, giờ đây mã của chúng ta cho hàm Root sẽ như thế này:

function Root() { const { products } = useLoaderData(); return ( <div id="main"> {products.length ? ( <nav> {products.map((product) => ( <Link key={product.id} to={`products/${product.id}`}> {product.name ? product.name : <i>Unnamed</i>} </Link> ))} </nav> ) : ( <p><i>no products here ...</i></p> )} <div id="product"> <Outlet /> </div> </div> ); }

Nếu bây giờ chúng ta khởi động lại ứng dụng và vào trang chủ, chúng ta sẽ chỉ thấy dòng chữ 'no products here ...', vì chúng ta chưa thêm bất kỳ sản phẩm nào vào kho lưu trữ.

Hãy lấy ứng dụng mà bạn đã tạo 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 thêm việc hiển thị dữ liệu về sinh viên nhận được từ loader, như được mô tả trong bài học.

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