不知道如何在請求后訪問標頭。不使用的檔案示例x-total-count
const guitarApi = createApi({
reducerPath: 'GUITARS',
baseQuery: fetchBaseQuery({ baseUrl: API_URL }),
endpoints: (builder) => ({
getAllGuitars: builder.query<AllGuitarsResponse, number>({
query: (limit = 1) => `${APIRoute.Guitars}_limit${limit}`,
}),
}),
});
我讓它們像這樣進入組件
const { data: guitarData } = useGetAllGuitarsQuery(searchingParams);
我在哪里可以訪問回應標頭?
uj5u.com熱心網友回復:
你可以使用transformResponse它,它有簽名
transformResponse?(
baseQueryReturnValue: BaseQueryResult<BaseQuery>,
meta: BaseQueryMeta<BaseQuery>,
arg: QueryArg
): ResultType | Promise<ResultType>
如果你使用fetchBaseQuery,meta將會
type FetchBaseQueryMeta = { request: Request; response?: Response }
所以你可以像這樣寫你的端點:
const guitarApi = createApi({
reducerPath: 'GUITARS',
baseQuery: fetchBaseQuery({ baseUrl: API_URL }),
endpoints: (builder) => ({
getAllGuitars: builder.query<{ apiResponse: AllGuitarsResponse, totalCount: number}, number>({
query: (limit = 1) => `${APIRoute.Guitars}_limit${limit}`,
transformResponse(apiResponse, meta) {
return { apiResponse, totalCount: Number(meta.response.headers.get('X-Total-Count')) }
}
}),
}),
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/386079.html
