是否可以使用外部 SDK 或数据获取库(如 Kitsu with RTK Query/Redux Toolkit)?
Is it possible to use an external SDK or data fetching library like Kitsu with RTK Query/Redux Toolkit?
根据 RTK Query documentation,我可以创建如下查询:
export const projectsApi = createApi({
reducerPath: 'projects',
baseQuery: fetchBaseQuery({
baseUrl: "https://some-site.com/api/",
prepareHeaders: (headers) => {
headers.set('Authorization', `Bearer ${accessToken}`);
return headers;
},
}),
tagTypes: ['Project'],
endpoints: (builder) => ({
fetchProjects: builder.query<Project[], void>({
query: () => ({ url: `projects` }),
}),
}),
});
以上按预期工作。但是,如果想使用像 Kitsu 这样的外部库来获取和转换数据,我会收到以下错误:
这是我在使用 Kitsu 时更新的代码:
export const projectsApi = createApi({
reducerPath: 'projects',
baseQuery: fetchBaseQuery({
baseUrl: "https://some-site.com/api/",
}),
tagTypes: ['Project'],
endpoints: (builder) => ({
fetchProjects: builder.query<Project[], void>({
query: api.get('projects'),
}),
}),
});
这里是 api 函数的代码:
const kitsu = (accessToken: string) => {
return new Kitsu({
baseURL: "https://some-site.com/api/",
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${accessToken}`,
},
});
};
const api = kitsu("ey....");
是否可以用 Kitsu 或任何第 3 方包提供的功能覆盖 RTK Query/Redux 工具包的 baseQuery 功能?
是的,这里有几个选项:
- 您可以创建自己的函数来实现“基本查询”行为,并将其用作 API slice
的 baseQuery
选项
- 您可以通过给它们一个
queryFn
选项来覆盖各个端点,它可以是任何异步函数,它可以获取一些数据并 returns 以正确的格式。
有关如何执行这两项操作的说明,请参阅 "Customizing Queries" page in the RTK Query preview docs。
根据 RTK Query documentation,我可以创建如下查询:
export const projectsApi = createApi({
reducerPath: 'projects',
baseQuery: fetchBaseQuery({
baseUrl: "https://some-site.com/api/",
prepareHeaders: (headers) => {
headers.set('Authorization', `Bearer ${accessToken}`);
return headers;
},
}),
tagTypes: ['Project'],
endpoints: (builder) => ({
fetchProjects: builder.query<Project[], void>({
query: () => ({ url: `projects` }),
}),
}),
});
以上按预期工作。但是,如果想使用像 Kitsu 这样的外部库来获取和转换数据,我会收到以下错误:
这是我在使用 Kitsu 时更新的代码:
export const projectsApi = createApi({
reducerPath: 'projects',
baseQuery: fetchBaseQuery({
baseUrl: "https://some-site.com/api/",
}),
tagTypes: ['Project'],
endpoints: (builder) => ({
fetchProjects: builder.query<Project[], void>({
query: api.get('projects'),
}),
}),
});
这里是 api 函数的代码:
const kitsu = (accessToken: string) => {
return new Kitsu({
baseURL: "https://some-site.com/api/",
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${accessToken}`,
},
});
};
const api = kitsu("ey....");
是否可以用 Kitsu 或任何第 3 方包提供的功能覆盖 RTK Query/Redux 工具包的 baseQuery 功能?
是的,这里有几个选项:
- 您可以创建自己的函数来实现“基本查询”行为,并将其用作 API slice 的
- 您可以通过给它们一个
queryFn
选项来覆盖各个端点,它可以是任何异步函数,它可以获取一些数据并 returns 以正确的格式。
baseQuery
选项
有关如何执行这两项操作的说明,请参阅 "Customizing Queries" page in the RTK Query preview docs。