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

反応ルーターを使用して fetch と useLoaderData() を更新する方法

<p>フォーム送信後にuseLoaderData()のデータを更新したいのですが。 私の場合: </p> <pre class="brush:php;toolbar:false;">export const countryLoader = async () => { const res = await fetch("https://restcountries.com/v3.1/all/"); if (!res.ok) { throw Error("データにアクセスできません!"); } res.json() を返します。 };</pre> <p><code><ルートインデックス要素={<CoutriesList />} ローダー={countriesLoader} /></code></p> <p>CountriesList 要素内: </p> <p><code>const country= useLoaderData();</code></p> <p>useLoaderData() の新しいデータで国を更新したい: </p> <pre class="brush:php;toolbar:false;">const find Country = async () => { const res = await fetch( `https://restcountries.com/v3.1/name/${searchText}` ); const データ = res.json(); データを返す。 };</pre> <p>なので、submitするときはcountrysLoaderのデータがfind Countryのデータになるようにしたいのです。 </p> <p>解決策はありますか?ありがとうございます</p>
P粉883223328P粉883223328392日前415

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

  • P粉373990857

    P粉3739908572023-08-27 11:27:14

    フォームを送信するときにルーティング アクションとして findcountry を使用するとよいと思います。ローダーは、ルートが初めてロードされるときに実行されます。アクションは後でスケジュールできます。

    基本的な例:

    リーリー リーリー リーリー リーリー

    返事
    0
  • キャンセル返事