RTK 查询 createApi 结果:“属性 '....' 在类型 'Api<BaseQueryFn> 上不存在”

时间:2021-07-29 00:21:59

标签: typescript react-redux redux-toolkit

以下代码使用 RTK 查询创建 Redux Hook:

export const specialtiesApi = createApi({
    reducerPath: 'specialtiesApi',
    baseQuery: fetchBaseQuery({ baseUrl: 'https://someplace.com/' }),
    endpoints: (builder) => ({
        getSpecialties: builder.query({
            query: (name) => `specialties`,
        }),
    }),
});

export const { useGetSpecialtiesQuery } = specialtiesApi;

最后一行代码抛出 Typescript 编译时错误:

Property 'useGetSpecialtiesQuery' does not exist on type 'Api<BaseQueryFn<string | FetchArgs, unknown, FetchBaseQueryError, {}, FetchBaseQueryMeta>, { getSpecialties: QueryDefinition<...>; }, "specialtiesApi", never, unique symbol>'

我的代码使用 Typescript 4.3.5 改编自 https://redux-toolkit.js.org/rtk-query/usage-with-typescript

我看不出有什么问题。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

确保从 createApi 模块而不是 fetchBaseQuery 导入 @reduxjs/toolkit/query/react@reduxjs/toolkit/dist/query 函数。

应该是:

import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react';

不是:

import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/dist/query';

软件包版本:

"typescript": "^4.3.5",
"@reduxjs/toolkit": "^1.6.1"