如何在 RTK 查询插件中向端点添加标头?

Bis*_*_PL 8 graphql-codegen rtk-query

尝试遵循官方页面上相当稀疏的教程并没有让我走得太远。

我本质上是试图根据 api 调用的参数添加某个标头,但我不知道如何配置端点来执行此操作。

phr*_*hry 11

return来自端点函数的所有内容都query将作为第一个参数传递给您的baseQuery. 因此,如果您正在使用fetchBaseQuery,则需要查看一下。

通常,创建的 baseQuery 会采用fetchBaseQuery正常调用会采用的所有选项fetch- 包括headers字段。

所以你会有类似的东西

myEndpoint: build.query({
  query(args) {
    return {
      url: "foo",
      headers: { myHeader: args.blup }
    }
  }
})
Run Code Online (Sandbox Code Playgroud)

应该可以解决问题。

一般来说,除了“稀疏教程”之外,向下滚动时还会有大约 25 个文档页面 - 但即便如此,也很难涵盖所有内容,因为 RTK-Query 相当灵活。

您可以在此处的文档中阅读有关 fetchBaseQuery 的更多信息:https://redux-toolkit.js.org/rtk-query/api/fetchBaseQuery#using-fetchbasequery


Rog*_*lio 9

@phry 回复不适用于我的情况。检查文档,在我的例子中,这可以解决 CORS 问题:

baseQuery: fetchBaseQuery({ 
        baseUrl: '.....',
        prepareHeaders: (headers, { getState }) => {
            headers.set('Access-Control-Allow-Origin', '*')
            return headers
        }
    }),
Run Code Online (Sandbox Code Playgroud)