Reduxのコンポーネントでのstoreからのデータ取得

このセッションでは、Reactコンポーネント内に storeからのデータを出力します。

商品管理アプリケーションを開き、 フォルダ parts/products に移動して、 その中にファイル ProductsList.jsx を作成します。 まず最初に、storeからデータを取得するために使用する フック useSelector をインポートします:

parts/products/ProductsList.jsximport { useSelector } from 'react-redux'

では、storeから商品データを取得しましょう。 セレクター関数は個別に作成せず、そのコードを useSelector のパラメーター内に直接記述します:

parts/products/ProductsList.jsxexport const ProductsList = () => {
  const products = useSelector((state) => state.products)
}

次に、関数 ProductsList の本体で、 商品取得の行の後に標準的な方法で商品を出力し、 map を使用します:

parts/products/ProductsList.jsxconst dispProducts = products.map((product) => (
  <div key={product.id}>
    <h3>{product.name}</h3>
    <p>{product.desc.substring(0, 100)}</p>
    <p>Price: {product.price}</p>
    <p>Amount: {product.amount}</p>
  </div>
))

そして、以下のマークアップの中で dispProducts を出力します:

parts/products/ProductsList.jsxreturn (
  <div>
    <h2>Products</h2>
    {dispProducts}
  </div>
)

あとは、私たちの商品リストをメインページに 表示するだけです。ファイル root.jsx を開き、 見出しを修正します:

app/root.jsx<h2>This is my first Redux app!</h2>

次のように変更します:

app/root.jsx<h2>My Products App</h2>

次に、ファイルにコンポーネント ProductsList をインポートします:

app/root.jsximport { ProductsList } from '../parts/products/ProductsList'

そして、idが main-page のdiv内の 閉じ hr タグの直後に挿入します:

app/root.jsx<ProductsList />

アプリケーションを起動します。2つの商品からなる 私たちのリストがメインページに無事に出力されました。

Задание 1

学生管理アプリケーションを開いてください。 フォルダ students 内にファイル StudentsList.jsx を作成します。

Задание 2

レッスンで説明されているように、フック useSelector を使用してstoreから 学生データを取得してください。 map を利用して、ステートにある 学生に関するすべての情報フィールドを 表示してください。

Задание 3

作成したコンポーネント StudentsList を root.jsx にインポートし、 メインページに表示してください。 学生に関するすべての情報が画面上に 表示されていることを確認してください。