首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从prepareHeaders访问给定端点的rtk-query切片数据?

如何从prepareHeaders访问给定端点的rtk-query切片数据?
EN

Stack Overflow用户
提问于 2021-11-08 13:26:56
回答 1查看 366关注 0票数 1

我在解决常见问题时遇到了麻烦,应该由RTKQuery来处理。

当我的应用程序启动时,它将加载configuration。这个配置将包含像baseUrl这样的东西,在头部中使用的一些数据等。

我已经使用createApi(...)创建了配置切片:

代码语言:javascript
复制
export interface Configuration {
  baseUrl: string;
  language: string;
}

export const configurationApi = createApi({
  reducerPath: "configuration",
  baseQuery: fetchBaseQuery({ baseUrl: "/api" }),
  endpoints: (builder) => ({
    loadConfiguration: builder.query<Configuration, unknown>({ //the generic expects second arugment...
      query: () => "/configuration",
    }),
  }),
});

我想在下面的请求中使用加载的配置的baseUrl和语言。文档指出prepareHeaders是执行此操作的正确位置:

代码语言:javascript
复制
export const testApi = createApi({
  reducerPath: "test",
  baseQuery: fetchBaseQuery({
    baseUrl: "/api", //need this from configuration
    prepareHeaders: (headers, { getState }) => {
      const state = getState() as RootState;
     // nees to get language from configuration

我无法在testApi中访问来自configuration的结果

我在文档/示例中找不到如何访问任何端点的数据。

假设我们有端点loadUser

代码语言:javascript
复制
endpoints: (builder) => ({
    loadUser: builder.query<Partial<UserResponse>, UserRequest>({
      query: ({ userId }) => ({
        url: "/api/user"
      }),
    }),
  }),

有没有简单的方法来访问最新的数据(关于用户ID,仅仅是用户端点的最新数据)?这看起来应该是微不足道的,但事实并非如此。

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2021-11-08 21:47:03

代码语言:javascript
复制
const selector = api.endpoints.foo.select(argumentLikeInTheHook)
const result = selector(getState())

但请记住,如果没有组件正在使用该端点数据,则将在(默认情况下) 60秒后对其进行缓存收集。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69884254

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档