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

React映射Redux嵌套数据报documents.map is not a函数如何解决

问题根因

你提供的Redux Slice结构中,documents字段为单个对象,而map是JavaScript数组的专属方法,对对象调用该方法自然会抛出「不是函数」的报错。

修复方案

方案1:调整Redux数据结构(推荐)

如果业务逻辑中一个分组下可能存在多个文档,将documents修改为数组结构即可,调整后的Slice结构如下:

{
    "documentGenerated": [
        {
            "documents": [
                {
                    "documentName": "string",
                    "documentStoreId": {{faker 'random.number'}},
                    "documentTitle": "string"
                }
            ],
            "groupName": "string",
            "groupId": {{faker 'random.number'}}
        }
    ]
}

调整完成后你现有的map遍历逻辑即可正常运行。

方案2:调整前端渲染逻辑(无需修改数据层)

如果业务逻辑中一个分组下确实仅存在一个文档,不需要使用map遍历,直接读取对象属性即可:

const documentGenerated = useSelector(selectDocumentGenerated);

<Card
  type="default"
  title={(
    <div>
      {documentGenerated.map((docGenerated) => (
        <div key={docGenerated.groupId}>
          <p key={docGenerated.documents.documentStoreId}>
            {docGenerated.documents.documentName}
          </p>
        </div>
      ))}
    </div>
  )}
/>

其他注意事项

  • 原代码中key={{ documentStoreId }}写法错误,key需要为字符串/数字基础类型,不需要额外嵌套大括号,直接写key={document.documentStoreId}即可
  • 遍历外层documentGenerated数组时也需要给根节点添加唯一key,推荐使用groupId作为key值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 18:30:02