suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Wie erstelle ich eine Kopie von useFetch in einem benutzerdefinierten Hook?

<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>
P粉928591383P粉928591383462 Tage vor391

Antworte allen(1)Ich werde antworten

  • P粉032900484

    P粉0329004842023-08-29 09:48:02

    useFetch 使用缓存来避免多个相同的请求。

    如果您在选项中设置initialCache: false,则可以禁用缓存,例如

    useFetch(API_PREFIX + url, {
        ...options,
        initialCache: false,
      }
    )
    

    Antwort
    0
  • StornierenAntwort