⊗jsrtPmRtULD 31 of 47 menu

React Routerのローダーで取得したデータの使用方法

前回のレッスンでは、 loaderを使用してストレージからデータを取得しました。 このデータを実際に利用するには、 フックuseLoaderDataを使用します。 ファイルroot.jsxを開き、インポートにこのフックを追加しましょう:

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

Root関数内で、データを定数productsで受け取り、 それを元に処理を行います。商品が存在する場合はリストを表示し、 存在しない場合は、段落タグで'no products here ...'と表示します。 navタグ内では、取得した商品リストを標準的なループで出力します。 各要素はLinkコンポーネントでラップされ、 それぞれ独自のアドレスを持ちます(これについては後ほど説明します)。 商品に名前がない場合は、デフォルトで'Unnamed'と表示されます。 以上を踏まえると、Root関数のコードは以下のようになります:

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

アプリケーションを再起動してメインページにアクセスすると、 現時点ではストレージに商品データがまだ何も追加されていないため、 'no products here ...'という表示のみが確認できるでしょう。

これまでのレッスンの課題で作成したアプリケーションを使用してください。 レッスンの内容に従って、ローダーから取得した学生データの表示を、 レッスンで説明した通りに追加してください。

日本語
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ʻzbekTiếng Việt
当サイトでは、サイトの動作、分析、パーソナライゼーションのためにクッキーを使用しています。 データ処理はプライバシーポリシーに従って行われます。
すべて受け入れる 設定 拒否