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

React使用redux connect时报props.numberArray.map is not a function错误如何解决

错误根因

你的mapStateToProps和mapDispatchToProps定义了同名key numberArray,react-redux的connect方法合并两类props时,mapDispatchToProps返回的字段优先级更高,会覆盖mapStateToProps的同名字段,所以最终组件拿到的props.numberArray是用于触发更新的函数,不是数组,调用map方法自然会抛出类型错误。
使用useSelector获取数据时,只会直接从redux store读取状态,不会和dispatch方法合并,因此不会出现覆盖问题,运行正常。

修复步骤
  1. 修改mapDispatchToProps中的方法名,避免和state中的数组字段重名,同时纠正原变量名笔误(原代码写为mapStateToDispatch,标准命名为mapDispatchToProps):
const mapDispatchToProps = (dispatch) =>
{
    return{
           updateName:() =>dispatch(updateName('orange')),           
           // 此处方法名修改为和state字段不冲突的名称
           updateNumberArray:() =>dispatch(updateNumberArray(15)),
         }    
}
  1. 组件中如果要触发数组更新,调用props.updateNumberArray即可,props.numberArray会正常返回store中的数组,可以调用map方法遍历。

补充说明:你贴出的reducer代码中createSlice方法缺少闭合的}),补全即可正常运行,该问题不影响本次报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 19:24:02