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

React中如何在sleep存在时访问嵌套对象的single属性值?

问题分析

你代码失效的核心原因是:roomFeatures.roomFeature.sleep是普通对象,而map()是数组的专属方法,不能用来遍历对象,因此这段代码无法执行。

正确实现方式

要在sleep存在的前提下访问single的值,直接通过对象属性访问即可,同时加上存在性判断避免报错:

方式1:用可选链简化判断

{roomFeatures.roomFeature.sleep?.single && (
  <div>
    <span>
      <BsFillPersonFill />
    </span>{" "}
    sleeps {roomFeatures.roomFeature.sleep.single}
  </div>
)}

方式2:提前解构提升可读性

如果需要更清晰的逻辑结构,可以先解构出目标属性:

const { sleep } = roomFeatures.roomFeature;

{sleep && sleep.single && (
  <div>
    <span>
      <BsFillPersonFill />
    </span>{" "}
    sleeps {sleep.single}
  </div>
)}

补充:遍历sleep所有属性的场景

如果后续需要同时展示single和double的值,可以用Object.entries()把对象转为键值对数组,再用map()遍历:

{roomFeatures.roomFeature.sleep && Object.entries(roomFeatures.roomFeature.sleep).map(([type, count]) => (
  <div key={type}>
    <span>
      <BsFillPersonFill />
    </span>{" "}
    {type} sleeps {count}
  </div>
))}

内容的提问来源于stack exchange,提问作者learning to code

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 00:57:23