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

React JS遍历对象数组渲染Col组件仅返回单个结果问题求助

错误原因
  • 你将本身就是数组的myObject额外包裹了一层[],相当于生成了一个新数组,新数组里只有myObject这一个元素,所以map遍历只会执行1次,不管原数组有多少个元素,最终都只能渲染出1个Col组件。
  • 直接调用myObject.map报错,是因为myObject在组件初始渲染时为undefined,父组件还未完成数据传递/异步数据还未返回,不存在map方法。
  • 你的代码存在函数重名冲突,外层函数和内部定义的渲染函数都叫renderMyPage,会导致作用域调用异常。
修复方案

直接使用如下修复后的代码即可:

function renderMyPage(props) {
  // 解构时设置默认空数组,避免undefined调用map报错
  const { myObject = [] } = props

  // 直接遍历原数组,不要额外加[],同时给渲染项加唯一key属性
  return myObject.map((c, i) => {
    return (
      <Col key={i}>
        My data here: {c.periodname}
      </Col>
    )
  })
}

如果需要保留内部渲染函数的封装,修改内部函数名避免重名即可:

function renderMyPage(props) {
  const { myObject = [] } = props

  const renderCols = () => {
    return myObject.map((c, i) => {
      return (
        <Col key={i}>
          My data here: {c.periodname}
        </Col>
      )
    })
  }

  // 其他逻辑...
  return <>{renderCols()}</>
}
补充说明

遍历渲染列表项时必须添加唯一key属性,否则React会抛出渲染警告,你也可以用业务唯一字段比如periodname(如果值唯一的话)代替索引i作为key值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 16:54:03