So aktualisieren Sie fetch und useLoaderData() mit React-Router
P粉883223328
2023-08-26 12:39:34
<p>Ich möchte die Daten von useLoaderData() nach dem Absenden des Formulars aktualisieren.
In meinem Fall: </p>
<pre class="brush:php;toolbar:false;">export const statesLoader = async () =>
const res =wait fetch("https://restcountries.com/v3.1/all/");
if (!res.ok) {
throw Error("Zugriff auf Daten nicht möglich!");
}
return res.json();
};</pre>
<p><code><Route index element={<CoutriesList />} loader={countriesLoader} /></code></p>
<p>Im CountriesList-Element: </p>
<p><code>const country= useLoaderData();</code></p>
<p>Ich möchte Länder mit neuen Daten in useLoaderData() aktualisieren: </p>
<pre class="brush:php;toolbar:false;">const findCountry = async () =>
const res = warte auf Abruf(
`https://restcountries.com/v3.1/name/${searchText}`
);
const data = res.json();
Rückgabedaten;
};</pre>
<p>Wenn ich also abschicke, möchte ich, dass die Daten von „countryLoader“ zu den Daten von „findCountry“ werden. </p>
<p>Gibt es eine Lösung? Vielen Dank</p>
我认为你可能想在提交表单时使用
findCountry
作为路由动作。加载器在第一次加载路由时运行。稍后可以调度一个动作。基本示例: