微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否可以在 RTK Query/Redux Toolkit 中使用外部 SDK 或数据获取库如 Kitsu?

如何解决是否可以在 RTK Query/Redux Toolkit 中使用外部 SDK 或数据获取库如 Kitsu?

根据 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 这样的外部库来获取和转换数据,我会收到以下错误

RTK query error

这是我在使用 Kitsu 时更新的代码

export const projectsApi = createApi({
  reducerPath: 'projects',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 或任何第三方软件包提供的功能覆盖 RTK Query/Redux Toolkit 的 baseQuery 功能

解决方法

是的,这里有几个选项:

  • 您可以创建自己的函数来实现“基本查询”行为,并将其用作 API 切片的 subdf <- subset(transform(df,newdate = as.Date(sub("^.{4}","2021",date),'%Y%m%d')),newdate >= as.Date('2021-01-03') & newdate <= as.Date('2021-03-03')) aggregate(sales ~ cbind(Year = substr(date,1,4)),subdf,FUN = sum) # Year sales #1 2020 138 #2 2021 196 选项
  • 您可以通过为单个端点提供 baseQuery 选项来覆盖它们,该选项可以是任何异步函数,用于获取一些数据并以正确的格式返回数据。

有关如何执行这两项操作的说明,请参阅 "Customizing Queries" page in the RTK Query preview docs

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。