用configureStore出现参数“action”和“action” 的类型不兼容问题

来源:10-8 【redux-toolkit】sotre配置(configureStore)与异步处理(createAsyncThunk)

suyx

2023-03-03

老师,您好!
我尝试把createStore替换成configureStore,遇到了一个问题。
图片描述
把鼠标放到language上,显示:
图片描述

languageActions.ts代码
图片描述
图片描述

languageReducer.ts代码
图片描述
图片描述
为什么报错只提示ChangeLanguageAction的payload呢?AddLanguageAction也定义了payload,却没有报错。
————————————————————————
而如果我先用combineReducers 形成一个rootReducer,再把rootReducer传入configureStore,代码正常运行。不会报错。正常运行的代码如下:
图片描述

请问这是什么原因呢?

写回答

1回答

阿莱克斯刘

2025-01-22

- 报错只提示 `ChangeLanguageAction` 的 `payload`**:这可能是因为在处理该 action 时, reducer 中对 `payload` 的类型定义或处理不正确,导致 TypeScript 报错。
- `AddLanguageAction` 没有报错**:可能是因为它的 `payload` 在定义和处理时符合预期,所以没有触发类型检查错误。
- 使用 `combineReducers` 不报错**:这可能是因为 `combineReducers` 帮助分离了不同状态片段的逻辑,确保每个 reducer 只处理自己相关的状态和 action。

可能的解决方案 1. 检查 action 的类型定义:确保每个 action 的 `payload` 类型定义正确,并且与 reducer 中的处理逻辑相匹配。 2. 使用 combineReducers:在定义多个 reducer 时,使用 `combineReducers` 可以帮助分离逻辑,减少类型检查错误。 3. 详细错误信息:查看详细的错误信息,确定具体是什么导致 `ChangeLanguageAction` 的 `payload` 报错。
0
0

React18 系统精讲 结合TS打造旅游电商平台

React18 精讲 + 结合 TS 实战 + 热门业务开发,获取必备技能

1993 学习 · 1015 问题

查看课程