You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NASA图片展示项目中rootReducer与Action出现TypeScript报错如何解决

错误1解决:combineReducers传入类型不匹配

问题原因:store/index.ts中导入的PostsReducer是reducer文件里命名导出的ImmerReducer类,而非combineReducers要求的标准reducer函数。你的reducer文件默认导出的是createReducerFunction(PostsReducer, initialState)生成的符合Redux规范的reducer函数,才是需要传入的目标参数。

修改代码

调整store/index.ts的导入逻辑:

// 原错误导入
import { PostsReducer } from "./reducers/posts";
// 修改为导入默认导出的reducer函数
import PostsReducer from "./reducers/posts";

错误2解决:AxiosResponse<Post[]>和Post[]类型不匹配

问题原因:Axios请求返回的是封装后的AxiosResponse对象,包含status、config、headers、data等属性,接口返回的业务数据仅存于data字段中,你直接把完整响应对象传给要求Post[]类型的setPosts方法触发了类型不匹配报错。

修改代码

调整action文件的请求取值逻辑:

// 原错误写法
const posts = await mainProtectedApi.getPosts(body);
// 修改为只取响应体的data字段
const { data: posts } = await mainProtectedApi.getPosts(body);

内容的提问来源于stack exchange,提问作者kyrylolv

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 05:24:05