首页 > 解决方案 > 如何从 redux 工具包中的 prepareHeaders 访问 url

问题描述

为了添加特定的标题,我需要检查 api/query url 是什么。没有任何基于 redux 工具包文档的参数。

export const gatewayApi = createApi({
    reducerPath: 'gatewayApi',
    tagTypes: [
        'Country',
        'Users',
    ],
    baseQuery: fetchBaseQuery({
        baseUrl: '/api/',
        prepareHeaders: headers => {
            headers.set('content-type', 'application/json');
            const { auth } = JSON.parse(
            localStorage.getItem('user'),
            );

            const { accessToken } = JSON.parse(
             localStorage.getItem('token'),
            );

            const queryUrl = '**** TODO ****';

            if (isTokenAuth(queryUrl)) {
             headers.set('authorization', `${accessToken}`);
            } else if (auth) {
            headers.set('authorization', `${auth}`);
            }

            return headers;
        },
    }),
    endpoints: () => ({}),
});

标签: reduxredux-toolkit

解决方案


不,没有。不过,您也可以只从端点的query函数中设置标头:

myEndpoint: build.query({
  query(arg) {
    return {
      url: ...,
      headers: { foo: "bar" }
    }
  }
})

推荐阅读