Comment mettre à jour fetch et useLoaderData() à l'aide de React-Router
P粉883223328
2023-08-26 12:39:34
<p>Je souhaite mettre à jour les données de useLoaderData() après avoir soumis le formulaire.
Dans mon cas : </p>
<pre class="brush:php;toolbar:false;">export const countryLoader = async () =>
const res = wait fetch("https://restcountries.com/v3.1/all/");
si (!res.ok) {
throw Error ("Impossible d'accéder aux données!");
}
return res.json();
};</pré>
<p><code><Élément d'index d'itinéraire={<CoutriesList />} loader={countriesLoader} /></code></p>
<p>Dans l'élément CountriesList : </p>
<p><code>const country= useLoaderData();</code></p>
<p>Je souhaite mettre à jour les pays avec de nouvelles données dans useLoaderData() : </p>
<pre class="brush:php;toolbar:false;">const findCountry = async () =>
const res = attendre la récupération (
`https://restcountries.com/v3.1/name/${searchText}`
);
const data = res.json();
renvoyer des données ;
};</pré>
<p>Ainsi, lorsque je soumets, je souhaite que les données de countryLoader deviennent les données de findCountry. </p>
<p>Y a-t-il une solution ? Merci</p>
Je pense que vous voudrez peut-être utiliser
findCountry
comme action de routage lors de la soumission du formulaire. Le chargeur est exécuté la première fois qu'un itinéraire est chargé. Une action peut être programmée ultérieurement.Exemple de base :