反応ルーターを使用して fetch と useLoaderData() を更新する方法
P粉883223328
2023-08-26 12:39:34
<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>
フォームを送信するときにルーティング アクションとして
findcountry
を使用するとよいと思います。ローダーは、ルートが初めてロードされるときに実行されます。アクションは後でスケジュールできます。基本的な例:
リーリー リーリー リーリー リーリー