Wie erstelle ich eine Kopie von useFetch in einem benutzerdefinierten Hook?
P粉928591383
2023-08-28 15:24:54
<p>Ich versuche, einen Hook zu erstellen, der mehrfach verwendet werden kann, aber das Verhalten, das ich erhalte, entspricht nicht meinen Erwartungen</p>
<p>/composables/fetch.ts</p>
<pre class="brush:js;toolbar:false;">export const useFetchWithErrorHandler = async (url: string, options?: FetchOptions) =>
const route = useRoute();
const { API_BASE_URL, API_PREFIX } = useRuntimeConfig();
console.log(URL, Optionen);
return new Promise(async (resolve, ablehne) => {
const Antwort = Warten auf useFetch(API_PREFIX + URL, {
...Optionen,
BasisURL: API_BASE_URL,
initialCache: false,
async onResponse({ Anfrage, Antwort, Optionen }) {
console.log('[Antwort abrufen]', Antwort);
},
async onResponseError({ Anfrage, Antwort, Optionen }) {
console.log('[Abrufantwortfehler]');
},
});
lösen(Antwort);
});
</pre>
<p>Löst nur die erste Anfrage</p>
<pre class="brush:js;toolbar:false;">const { data: Response } = waiting useFetchWithErrorHandler(`page-1`, {
pick: ['data'],
});
const { Daten: Antwort } = Warten auf useFetchWithErrorHandler(`page-2`, {
pick: ['data'],
});
</pre></p>
useFetch
使用缓存来避免多个相同的请求。如果您在选项中设置
initialCache: false
,则可以禁用缓存,例如