如何在redux工具包中获取slice.injectEndpoint内的状态值?

问题描述 投票:0回答:1

我想从商店获取值,因为登录时我将令牌存储在

state.userDetails
中。

在另一个切片中我需要获取令牌

export const organizationApiSlice = apiSlice.injectEndpoints({
  endpoints: (builder) => ({
    getOrgInventory: builder.query({
      query: (id) => ({
        url: `${ORGANIZATION_URL}/${id}/inventory`,
        headers: {
          "Content-Type": "application/json",
          Authorization:
            "Bearer GETTOKENHERE",
        },
      }),
      keepUnusedDataFor: 4,
    }),
  }),
});

我怎样才能获得这个injectEndPoints内的状态?

我的 apiSlice 是这样的。

export const apiSlice = createApi({
  baseQuery,
  tagTypes: ["User", "Organization", "Inventory", 'Item'],
  endpoints: (builder) => ({}),
});
reactjs redux redux-toolkit
1个回答
0
投票

你读过

fetchBaseQuery
prepareHeaders
吗?

设置请求的默认标头。这就是这样做的目的,而不是在每一个

query

import { fetchBaseQuery } from '@reduxjs/toolkit/query'
import type { RootState } from './store'

const baseQuery = fetchBaseQuery({
  baseUrl: '/',
  prepareHeaders: (headers, { getState }) => {
    const token = (getState() as RootState).auth.token

    // If we have a token set in state, let's assume that we should be passing it.
    if (token) {
      headers.set('authorization', `Bearer ${token}`)
    }

    return headers
  },
})
© www.soinside.com 2019 - 2024. All rights reserved.