reactjs - Typfel vid tillägg av providesTags i RTK Query
Jag försöker ställa in cache-invalidering för mitt projekt med RTK Query, men jag får ett typfel när jag följer den officiella dokumentationen. Målet är att ogiltigförklara enskilda objekt i den hämtade listan över resurser, men jag fastnar bara när jag försöker ange en allmän tagg:
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']
}),
})
})
De ['Scener'] blir understrukna och visar följande felmeddelande:
Type 'string' is not assignable to type 'FullTagDescription<never>'.ts(2322)
Jag är ganska ny på TypeScript, men jag har ändå försökt gräva i typfilerna för RTK Query för att ta reda på var och varför "never" förväntas. Men ingen tur.
Låt mig veta om mer bakgrund om mitt projekt och/eller kod behövs! Tack!
Svar #1
Jag är inte tillräckligt bekant med API i RTK, men jag lekte lite med TypeScript där och upptäckte att om du deklarerar tagTypes i ditt createApi-objekt löser det problemet:
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']
}), ...
