在 RTK 查询中添加提供标签时输入错误
2022-02-15
9758
我正尝试使用 RTK Query 为我的项目设置缓存失效,但按照官方文档操作时出现类型错误。目标是使获取的资源列表中的各个项目失效,但我在尝试提供一个通用标签时遇到困难:
import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react';
export const remoteScriptsApi = createApi({
baseQuery: fetchBaseQuery({
baseUrl: '/api', prepareHeaders: (headers) => {
headers.set('Accept', 'plain/text, application/json');
return headers;
}
}),
endpoints: (builder) => ({
getScenes: builder.query<number[], void>({
query: () => ({ url: '/scenes' }),
providesTags: ['Scenes']
}),
})
})
['Scenes'] 带有下划线,显示以下错误消息:
Type 'string' is not assignable to type 'FullTagDescription<never>'.ts(2322)
我对 TypeScript 还很陌生,但我仍然尝试深入研究 RTK Query 的类型文件,以找出需要“never”的位置和原因。但是没有运气。
如果需要有关我的项目和/或代码的更多背景信息,请告诉我!谢谢!
1个回答
我对 RTK 中的 API 不够熟悉,但我在那里玩了一下 typescript,发现如果你在 createApi 对象中声明
tagTypes
,就可以解决问题:
export const remoteScriptsApi = createApi({
baseQuery: fetchBaseQuery({
baseUrl: '/api', prepareHeaders: (headers) => {
headers.set('Accept', 'plain/text, application/json');
return headers;
}
}),
tagTypes: ['Scenes'], // <---- declare your tagTypes before you use them
endpoints: (builder) => ({
getScenes: builder.query<number[], void>({
query: () => ({ url: '/scenes' }),
providesTags: ['Scenes']
}), ...
Oro
2022-02-15