在我的主要商店中。我有这个:
const store = createStore(
rootReducer,
composeWithDevTools(applyMiddleware(thunk))
);
store.dispatch(fetchUser());
因此,在第一个渲染器上,它向fetchUser调度并执行操作,以查看他/她是否可以看到内容。
这是重击:
export const fetchUser = (): ThunkAction<
void,
TRootState,
null,
Action
> => async dispatch => {
const response = await axios.get(GET_USER_INFORMATION);
dispatch({
type: FETCH_USER,
payload: response.data
});
};
但是Typescript会引发错误:
src/store/index.ts
(14,16): Argument of type 'ThunkAction<void, { userReducer: any; }, null, Action<any>>' is not assignable to parameter of type 'AnyAction'.
Property 'type' is missing in type 'ThunkAction<void, { userReducer: any; }, null, Action<any>>'.
store / index.ts第14行:
store.dispatch(fetchUser())
老实说,我迷路了。我该如何解决?我不想在thunk中输入“ any”。
答案 0 :(得分:0)
store.dispatch仅接受一个动作,不接受任何功能。但重击将其覆盖。您需要指定thunk类型。
尝试
composeWithDevTools(applyMiddleware(thunk as ThunkMiddleware<RootState, RootAction>))
另外,请选中此official docs