ホームページ  >  に質問  >  本文

data.json ファイルにアクセスできず、新しいカード/コンポーネントのフィルタリングを実行できないという問題が発生しました。

<p>それで、前のページから ID を取得するようにページを設定しました。画像 4 をクリックすると、URL (/Food/4) などが表示されます。したがって、前のページから正しい情報を得ることができました。ここで私が抱えている問題は、fetchを使用してdata.jsonファイルを取得し、jsonから情報を取得し、IDに基づいてページに情報をレンダリングすることです。したがって、画像 4 をクリックして新しいページに ID を渡すと、json ファイルから画像 4 のデータを表示したいと考えます。いくつかの異なるフェッチ設定、さらには axios 設定を試しましたが、完全に迷っています。 useParams を実装する必要がありますか? params.id?ありがとう! </p> <pre class="brush:php;toolbar:false;">import React, { useState, useEffect } from 'react' import { Link, useParams } from 'react-router-dom' 「./data.json」からデータをインポートします デフォルト関数 Foodinfo() をエクスポート { const params = useParams() const [アイテム, setItem] = useState(); useEffect(() => { fetch('/data.json') .then(response =>response.json()) .then(data => console.log(data)); }) 戻る ( <div> <h1>食事情報</h1> <img src={item.pic} /> <「/」へのリンク> <ボタン>メニュー</ボタン> </リンク> </div> ) }</pre>
P粉032977207P粉032977207431日前521

全員に返信(1)返信します

  • P粉020085599

    P粉0200855992023-08-17 18:30:41

    フィルタリングのために data.json にアクセスする

    URL 経由で渡された id に基づいて、JSON ファイル から項目をロードしたいようです。

    data.json ファイルをコンポーネントに直接インポートしたため、fetch または axios を使用してリクエストする必要はありません。これはコンポーネント内に変数 data としてすでに存在します。したがって、URL から取得した id パラメーターに基づいてデータをフィルターし、関連オブジェクトを使用して item ステータスを設定できます。

    これは、問題を解決するために Foodinfo コンポーネントを更新する方法です:

    1. useParams を使用して、URL から id を取得するだけです。
    2. params.id文字列型 であり、JSON ファイルのデータであるため、id を整数として解析します。 IDとしての番号。
    3. データ配列
    4. id と同じ item を見つけます。 setItem
    5. 関数を使用して、この
    6. item を項目の状態に設定します。 最後に、コンポーネント内でプロジェクト情報をレンダリングします。
    7. 調整されたコード:

    リーリー

    返事
    0
  • キャンセル返事