Amazon Developer

as

Settings
Sign out
Notifications
Alexa
Amazonアプリストア
Ring
AWS
ドキュメント
Support
Contact Us
My Cases
開発
設計と開発
公開
リファレンス
サポート
メインコンテンツへスキップ
今度は、islandVideos配列とunderwaterVideos配列の各アイテムのビデオカードをレンダリングします。これを実行する方法は複数あります。
  1. .map関数などのJavaScriptロジックを使用してJSXの配列を繰り返し処理し、各アイテムのコンポーネントを作成する。
  2. 配列オブジェクトを受け取るReact NativeのFlatListコンポーネントを使用する。
ここでは2番目の方法を選択します。FlatListの方が.mapよりも効率的で、より簡単だと思われるためです。

FlatListの作成

  • まず、FlatList、View、StyleSheetをLandingScreen.tsxの「react-native」からインポートします。
  • VideoCardコンポーネントをFlatListコンポーネントに置き換えます。
  • アイテムを水平方向に表示するためのhorizontalプロパティを追加します。
  • FlatListにdataプロパティを追加してislandVideosに設定します。これがFlatListでレンダリングされるソースデータです。
  • renderItemプロパティを追加します。これはdataプロパティのitem(この例では1つのビデオ要素)をアロー関数に渡します。アロー関数では、そのアイテムをレンダリングするJSXを指定します。
  • VideoCardコンポーネントをrenderItemに追加し、Viewでラップします。
  • VideoCardにkeyプロパティを追加します。FlatListがこれを使用してアイテムを追跡します(キーは一意である必要があります)。VideoCardでkeyを指定する代わりに、FlatListにkeyExtractorプロパティを追加することもできます。詳細については、React NativeのFlatListに関するドキュメント(英語のみ)を参照してください。
  • title、description、imgURLの各プロパティをVideoCardコンポーネントに追加し、itemの対応するフィールドを渡します。
  • underwaterVideos用に2つ目のFlatListを作成してください。
  • 各行にTextコンポーネントを追加して、カテゴリにラベルを付けます。
  • アプリを更新し、VideoCardがレンダリングされていることを確認します。

スタイルの追加

VideoCardの画面での見栄えをよくするために、スタイルを追加しましょう。
  • LandingScreenのアロー関数の後に、flatList、itemContainer、categoryTitleという名前のスタイルを含むStyleSheetを作成します。これらのスタイルはカードにスペースを挿入し、カテゴリタイトルを若干見やすくします。
  • 次に、flatListスタイルをFlatListに追加し、itemContainerスタイルをViewに追加し、categoryTitleをTextに追加します。

TVFocusGuideViewでの行の折り返し

これで、2行の間でフォーカスが確実に処理されるようにTVFocusGuideViewコンポーネントを使用できます。このコンポーネントにより、アプリは複数回訪問したときのフォーカスを見つけて回復し、記憶することができます。
  • @amazon-devices/react-native-keplerからTVFocusGuideViewをインポートします。
  • FlatListをTVFocusGuideViewでラップし、オートフォーカスをtrueに設定すると、TVFocusGuideが自動的にフォーカスを管理できるようになります。
更新されたLandingScreen.tsxは次のようになります。
  • アプリを更新し、既存の行から別の行に移動します。新しい行の対応する項目に移動するのではなく、移動元の項目にフォーカスが保持されていることに注目してください。この動作はTVFocusGuideViewコンポーネントによって制御されています。
TVFocusGuideViewによるフォーカスナビゲーション

TVFocusGuideViewによるフォーカスナビゲーション

おめでとうございます!ビデオアプリの基盤を構築したこのラボのパート1を無事終了しました。再利用可能なコンポーネントを作成し、データ取得を実装し、VideoCardにインタラクティブ機能を追加しました。パート2では、アプリの機能を拡張します。
最終更新日 2026年10月26日