v.z*_*cev 6 reactjs redux-toolkit rtk-query
不知道如何在请求后访问标头。未使用的文档示例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}`,
}),
}),
});
Run Code Online (Sandbox Code Playgroud)
我像这样将它们放入组件中
const { data: guitarData } = useGetAllGuitarsQuery(searchingParams);
Run Code Online (Sandbox Code Playgroud)
我在哪里可以访问响应标头?
phr*_*hry 15
你可以用transformResponse这个,它有签名
transformResponse?(
baseQueryReturnValue: BaseQueryResult<BaseQuery>,
meta: BaseQueryMeta<BaseQuery>,
arg: QueryArg
): ResultType | Promise<ResultType>
Run Code Online (Sandbox Code Playgroud)
如果你使用fetchBaseQuery,meta将会
type FetchBaseQueryMeta = { request: Request; response?: Response }
Run Code Online (Sandbox Code Playgroud)
所以你可以这样写你的端点:
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')) }
}
}),
}),
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6029 次 |
| 最近记录: |