You need to enable JavaScript to run this app. JSX中如何遍历对象属性 实现无序列表渲染
优惠活动
大模型
产品
解决方案
定价
更多

JSX中如何遍历对象属性 实现无序列表渲染

实现方案

JSX 仅支持嵌入返回单个节点或节点数组的表达式,for...in 属于流程控制语句,无法直接内嵌到 JSX 结构中。可先在 return 语句前遍历对象收集列表节点,再将节点数组嵌入 JSX 完成渲染。

补全后的 render 方法:

render () {
  // 遍历对象自身可枚举属性,生成li节点数组
  const listItems = Object.keys(currObj).map(propKey => (
    // 列表项必须携带唯一key,属性名本身全局唯一,直接复用即可
    <li key={propKey}>
      <strong>{propKey}</strong> : {currObj[propKey]}
    </li>
  ));

  return (
    <ul>
      {listItems}
    </ul>
  );
}

关键说明

  • 选用Object.keys()而非for...in的原因:该方法返回对象自身所有可枚举属性组成的数组,搭配数组自带的map方法可直接返回JSX可识别的节点数组,无需手动声明变量push收集节点
  • 必须为每个列表项添加key属性:React 渲染列表时依赖 key 完成虚拟DOM diff 优化,属性名不存在重复,直接用属性名作为key完全符合规则
  • 上述代码渲染出的DOM结构和需求完全匹配,无需额外调整
  • 注意:你提供的示例对象里inventory_status : 1.末尾的句点属于笔误,实际使用时需要移除,否则会触发JavaScript语法报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.03 09:15:10