typescript 类型的参数(调度:调度)=>承诺'不能赋给' AnyAction '类型的参数. ts(2345)< void>' is not assignable to parameter of type 'AnyAction'.ts(2345)

ia2d9nvy  于 2023-03-09  发布在  TypeScript
关注(0)|答案(1)|浏览(479)

伙计们。我开始用redux创建异步操作,当我把异步操作放到调度中时,得到了一个错误:Argument of type '(dispatch: Dispatch) => Promise<void>' is not assignable to parameter of type 'AnyAction'.ts(2345)
异步操作:

import { updateCommentCounterAction } from "../store/commentCounter";
import { PostService } from "../API/PostService";
import { Dispatch } from "redux";

export const fetchComment = (idPost: string | undefined) =>{
    return async (dispatch: Dispatch) =>{
        const response = await PostService.getPost(idPost);
        dispatch(updateCommentCounterAction(response.comments))
    }
}

在应用程序中使用操作:

useEffect(() => {
    fetchPost();
    dispatch(fetchComment(idPost));
}, [])

我做错了什么?谢谢!

n6lpvg4x

n6lpvg4x1#

您可能正在使用非类型化的useDispatch钩子,它不知道您的商店中活动的中间件。请使用自定义类型化的useAppDispatch钩子,如Redux TypeScript QuickStart所示。

相关问题