typescript - RTK 查询 createApi 导致:“属性 '....' 在类型 'Api 上不存在"
问题描述
以下代码使用 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 。
我看不出它有什么问题。有任何想法吗?
解决方案
确保从模块而不是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"
推荐阅读
- machine-learning - 属性的特征缩放
- python - 如何检查字典键的值是字符串还是整数
- java - 如何使用包编译和运行java
- python - TypeError:第一个参数必须是可调用的或无 - 错误不是第一次出现,而是稍后出现
- soa - SOA 项目与服务总线项目
- reactjs - 如何将具有三行三列的容器转换为四行两列
- javascript - 从 nodered 读取两个输入
- java - 使用杰克逊序列化,我如何序列化双值 null 并且在 0.0 时不返回
- angularjs - AngularJS ng-options 未从 Promise 值填充
- android-studio - 对象分类器没有伴随对象,因此必须在此处初始化 [kotlin]