如何从我的商店获取 RTK 查询生成的数据?
How can I get data from my store generated by RTK Query?
我正在使用一个非常基本的 RTK 查询挂钩从 API 获取一些用户数据。我如何访问保存在组件内部商店中的数据?我无法通过RTK查询从特定事务中生成的存储中获取数据。
我有一个简单的 Post API,我调用了 getPosts 挂钩。在 Redux devtools 中,我可以在我的商店中看到来自 RTK 查询挂钩的数据:
Post API
import { createApi, fetchBaseQuery } from '@rtk-incubator/rtk-query';
export interface Post {
id: number;
name: string;
fetched_at: string;
}
type PostsResponse = Post[];
export const postApi = createApi({
reducerPath: 'postsApi',
baseQuery: fetchBaseQuery({ baseUrl: '/' }),
entityTypes: ['Posts'],
endpoints: (build) => ({
getPosts: build.query<PostsResponse, void>({
query: () => 'posts',
provides: (result) => [
...result.map(({ id }) => ({ type: 'Posts', id } as const)),
{ type: 'Posts', id: 'LIST' },
],
}),
}),
});
Post调用 hook 后保存在存储中
最简单的方法是在每个需要数据的组件中调用 getPosts
挂钩。
它将使用缓存中的数据而不发出额外的请求 - 但如果您稍后在没有父组件的情况下安装该组件,或者在数据尚不存在的另一个上下文中,它将发出请求。
因此您可以保证始终以这种方式获取数据。
我正在使用一个非常基本的 RTK 查询挂钩从 API 获取一些用户数据。我如何访问保存在组件内部商店中的数据?我无法通过RTK查询从特定事务中生成的存储中获取数据。
我有一个简单的 Post API,我调用了 getPosts 挂钩。在 Redux devtools 中,我可以在我的商店中看到来自 RTK 查询挂钩的数据:
Post API
import { createApi, fetchBaseQuery } from '@rtk-incubator/rtk-query';
export interface Post {
id: number;
name: string;
fetched_at: string;
}
type PostsResponse = Post[];
export const postApi = createApi({
reducerPath: 'postsApi',
baseQuery: fetchBaseQuery({ baseUrl: '/' }),
entityTypes: ['Posts'],
endpoints: (build) => ({
getPosts: build.query<PostsResponse, void>({
query: () => 'posts',
provides: (result) => [
...result.map(({ id }) => ({ type: 'Posts', id } as const)),
{ type: 'Posts', id: 'LIST' },
],
}),
}),
});
Post调用 hook 后保存在存储中
最简单的方法是在每个需要数据的组件中调用 getPosts
挂钩。
它将使用缓存中的数据而不发出额外的请求 - 但如果您稍后在没有父组件的情况下安装该组件,或者在数据尚不存在的另一个上下文中,它将发出请求。
因此您可以保证始终以这种方式获取数据。