Я пытался работать с машинописью с redux-thunk и redux. Я хотел бы передать объект любому действию (я использую внедрение зависимостей, и мне нужно передать объектный сервис или строку)
я получил эту ошибку;
Overload 1 of 2, '(action: AnyAction): AnyAction', gave the following error.
Argument of type '(dispatch: any, getState: AppState, extraArg: string) => Promise<any>' is not assignable to parameter of type 'AnyAction'.
это сделано как следующие:
store.ts:
const middlewares = [
routerMiddleware(history),
thunkMiddleware.withExtraArgument('bar') as ThunkMiddleware<
AppState,
Actions,
string
>
];
const middleWareEnhancer = applyMiddleware(...middlewares);
const store = createStore(
rootReducer(history),
preloadState,
composeWithDevTools(middleWareEnhancer)
);
мой index.ts, куда я пытаюсь отправить действие:
(store.dispatch as ThunkDispatch<{}, void, AnyAction>)(getAll());
мой файл действия, который работает:
export const getall = () => async (dispatch: any) => {
try {
dispatch({ type: GETALL_REQUEST });
return dispatch({ type: GETALL_SUCCESS, payload: null });
} catch (e) {
return dispatch({ type: GETALL_FAILURE, error: e });
}
};
мое действие (часть его), которое вызывает ошибку
export const getAll = () => async (
dispatch: any,
getState: AppState,
extraArg: string
) => {....action logic}
тогда я получил ошибку:
(store.dispatch as ThunkDispatch<{}, void, AnyAction>)(getAll());