全书目录

第一篇:React 完全指南 —— 空调宇宙

第九章:条件渲染 + 列表渲染

1 分钟 96 字 第 31 / 962 个阅读单元
tsx
function SmartHome() {
  const [rooms, setRooms] = useState([
    { id: 1, name: '客厅', temp: 28, hasAC: true },
    { id: 2, name: '卧室', temp: 25, hasAC: true },
    { id: 3, name: '厨房', temp: 32, hasAC: false },
  ]);

  return (
    <div>
      {rooms.map(room => (
        <div key={room.id}>
          <h3>{room.name} - {room.temp}°C</h3>

          {room.hasAC ? (
            <AirConditioner initialTemp={room.temp} />
          ) : (
            <p>该房间未安装空调</p>
          )}
        </div>
      ))}
    </div>
  );
}

为什么需要 key?

没有 key,React 就像物业管理员不知道哪台空调是哪个房间的。你把客厅的空调拆了,它可能误把卧室的空调当成客厅的,导致状态错乱。key 就是每台空调的编号铭牌