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

Redux mapDispatchToProps方法调用正常但state未正确返回为props问题

问题根因
  • Redux 初始化阶段会自动派发内部的 @@INIT 类型 action,该 action 不会匹配你定义的 GET_BOOKS 分支,会直接进入 default 逻辑。你在 default 分支返回了空对象 {},直接覆盖了初始设置的 initialState,且 state = initialState 这个默认赋值仅在 state 为 undefined 时生效,第一次返回空对象后,后续模块 state 就固定为空,就算触发 GET_BOOKS 也只会返回空对象的扩展结果,自然无法拿到 books 数组。
修复方案

修改 bookReducer 的 default 分支逻辑,默认返回当前传入的 state 即可,这是 Redux reducer 的标准写法要求:

const bookReducer = (state = initialState, action) => {
  switch (action.type) {
    case GET_BOOKS:
      return {
        ...state,
      };
    default:
      // 不要返回空对象,返回现有state即可
      return state;
  }
};
补充说明

如果你是测试阶段特意将 default 分支设置为返回空对象,测试完成后记得改回标准写法,所有未被显式匹配的 action 都应该保持现有 state 不变,避免状态被意外重置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 08:30:00