reactjs - Redux toolkit, saknas typ för att skicka thunk
Jag använder redux-toolkit och försöker dispatcha en thunk. Dispatch-funktionen jag använder ser ut så här, detta är direkt taget från dokumentationen. eslint klagar på den saknade returtypen, någon idé om vad det borde vara?
export const useAppDispatch = () => useDispatch<AppDispatch>();
Dessutom får jag samma fel som i den här frågan Hur man dispatchar en Action eller en ThunkAction (i TypeScript, med redux-thunk)?, men det finns ingen riktig lösning där såvitt jag förstod det.
Så om jag fick kod som den här:
export const fetchSomeThing = createAsyncThunk<SomeType[]>('someThing/fetch', async () => {
const someClient = useSomeClient();
const someThing: SomeType[] = await someClient.listSomething();
return someThing;
});
// I also tried typing dispatch as AppDispatch here explicitly, but it gives me the same error
const dispatch = useAppDispatch();
dispatch(fetchSomeThing()) //This gives an error: Property 'type' is missing in type 'AsyncThunkAction<SomeType[], void, {}>'
// but required in type 'AnyAction'.ts(2345), index.d.ts(21, 3): 'type' is declared here.
Min butik ser ut så här:
export const store = configureStore({
reducer: {
someThing: someThingReducer,
},
});
// Infer the `RootState` and `AppDispatch` types from the store itself
export type RootState = ReturnType<typeof store.getState>;
export type AppDispatch = typeof store.dispatch; // According to vs-code this is of type AppDispatch = Dispatch<AnyAction>
Svar #1
Detta verkar nyligen hända när folk har [email och [email installerade på något sätt sida vid sida och det kan vanligtvis lösas genom att installera om @types/react-redux genom att göra npm i @types/react-redux eller yarn add @types/react-redux. Kan du vänligen prova det?