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

通过props传值循环渲染表格时数据不展示,手动输入数据可正常显示

问题原因

你使用了forEach方法遍历数组生成表格行,forEach仅负责遍历执行回调逻辑,没有返回值,因此你在回调内部定义的<tr>元素没有被传递到JSX渲染层,所以UI不会显示对应的表格内容。手动写静态内容可以正常渲染,是因为这部分内容直接传递到了渲染层,不需要依赖遍历方法的返回值。

修复方案

将forEach替换为map方法,map会把每一轮回调的返回值收集为新数组返回,JSX可以直接渲染JSX元素组成的数组。同时需要为列表根元素<tr>添加唯一的key属性,符合React列表渲染规范,避免控制台抛出警告。

修复后代码如下:

{props.uiProductCart.map((data) => (
  <tr key={data.srno} data-index={data.srno}>
    <td>{data.srno}</td>
    <td>{data.name}</td>
    <td>{data.price}</td>
    <td>{data.quantity}</td>
    <td>{data.total}</td>
    <td>
      <BtnDelete title="Remove" />
    </td>
  </tr>
))}

如果习惯使用带大括号的回调写法,需要手动添加return返回<tr>元素:

{props.uiProductCart.map((data) => {
  return (
    <tr key={data.srno} data-index={data.srno}>
      <td>{data.srno}</td>
      <td>{data.name}</td>
      <td>{data.price}</td>
      <td>{data.quantity}</td>
      <td>{data.total}</td>
      <td>
        <BtnDelete title="Remove" />
      </td>
    </tr>
  )
})}

如果替换后仍无内容渲染,可以在遍历前打印props.uiProductCart确认传入的数组是否为空、数据格式是否符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 17:24:05