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

React TypeScript项目使用Redux创建store出现类型报错如何解决?

错误原因

报错核心是reducer的CHANGE_BURGER分支返回值类型不符合定义:
你的BurgerButtonState是包含isOpened属性的对象类型,但你在对应分支写了return !state,state本身是对象,!state会直接将对象转为布尔值,返回结果为true/false,和要求的BurgerButtonState对象类型不兼容,因此触发TS类型报错。

解决方案

修改reducer文件中CHANGE_BURGER分支的返回逻辑,返回结构正确的新状态对象即可:

const reducer = (state: BurgerButtonState = initialState, action: BurgerAction) => {
    switch(action.type) {
        case actionTypes.CHANGE_BURGER: 
        // 解构原state,仅修改isOpened属性,返回符合类型的新对象
        return {
            ...state,
            isOpened: !state.isOpened
        }

        default: 
        return state;
    }
}
额外优化点

你的入口文件ReactDOM.render逻辑中,Provider组件外多写了一个<App />,这个外层的App无法拿到Redux的store注入,建议删除避免出现异常逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 14:27:00