RTK-Query是一个用于处理API请求和数据管理的强大工具,它是基于Redux Toolkit构建的。在RTK-Query中向端点添加headers可以通过自定义baseQuery来实现。
首先,需要在创建api对象时使用createApi函数,并通过baseQuery选项来自定义请求。在baseQuery中,可以通过在request对象的headers字段中添加headers参数来向端点添加headers。
下面是一个示例代码:
import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react';
const api = createApi({
baseQuery: fetchBaseQuery({
baseUrl: '/api',
prepareHeaders: (headers, { getState }) => {
// 在这里添加自定义的headers
headers.set('Authorization', `Bearer ${getState().auth.token}`);
return headers;
},
}),
endpoints: (builder) => ({
// 定义端点和请求配置
// ...
}),
});
export const { useXXXQuery, useYYYMutation, ... } = api;
在上面的示例中,prepareHeaders函数是一个回调函数,它会在每次请求发出前被调用。在该函数中,可以通过getState方法获取到Redux store的状态,并根据需要添加自定义的headers。在这里,我们通过getState().auth.token获取到用户的认证令牌,并将其添加到请求的headers中。
这样,在使用RTK-Query的useXXXQuery或useYYYMutation等hooks时,请求将自动包含这些自定义headers。
需要注意的是,RTK-Query还提供了其他一些高级的自定义选项,例如:自定义请求方法、自定义请求和响应拦截器等。你可以根据具体的需求,进一步了解和使用这些功能。
关于RTK-Query的更多详细信息和示例,请参考腾讯云的RTK-Query产品文档: RTK-Query产品文档
领取专属 10元无门槛券
手把手带您无忧上云