使用代码拆分时如何创建 RTK-Query 端点类型
How to create RTK-Query endpoint types when using codesplitting
我目前正在为一个应用程序构建一个 rtk-query 包,我在其中使用代码拆分(通过使用 injectEndpoints
,因为可能涉及数百个端点)。但是,我还想实现一个类似于 the automatic prefetch hook in the docs.
的预取挂钩
有没有办法为这些端点生成正确的 Typescript 类型?上面的钩子将端点类型定义为 type EndpointNames = keyof typeof api.endpoints
,但是我所有的端点都是这样定义的(如文档所述):
export const emptySplitApi = createApi({
baseQuery: fetchBaseQuery({ baseUrl: '/' }),
endpoints: () => ({}), //
})
如果这不可能,从不同的 injectEndpoints
方法导出多个 usePrefetch
挂钩的最佳方法是什么?
我只是从每个文件中导出完整的 api 对象,然后就像 api1.usePrefetch()
、api2.usePrefetch()
.
这样你也可以确保正确的文件已经被加载,所以它被注入了。如果你要在父 api 上调用它,你永远无法确定端点是否已经被注入。
我目前正在为一个应用程序构建一个 rtk-query 包,我在其中使用代码拆分(通过使用 injectEndpoints
,因为可能涉及数百个端点)。但是,我还想实现一个类似于 the automatic prefetch hook in the docs.
有没有办法为这些端点生成正确的 Typescript 类型?上面的钩子将端点类型定义为 type EndpointNames = keyof typeof api.endpoints
,但是我所有的端点都是这样定义的(如文档所述):
export const emptySplitApi = createApi({
baseQuery: fetchBaseQuery({ baseUrl: '/' }),
endpoints: () => ({}), //
})
如果这不可能,从不同的 injectEndpoints
方法导出多个 usePrefetch
挂钩的最佳方法是什么?
我只是从每个文件中导出完整的 api 对象,然后就像 api1.usePrefetch()
、api2.usePrefetch()
.
这样你也可以确保正确的文件已经被加载,所以它被注入了。如果你要在父 api 上调用它,你永远无法确定端点是否已经被注入。