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

React调用API获取数据时如何解构外层包装对象提取目标数组

解决方法

问题核心是API返回的外层对象中,你需要的用户列表存在users属性下,直接修改响应数据处理逻辑和渲染逻辑即可:

方法1:直接取目标属性

修改fetch请求的响应处理逻辑,把users字段的值赋值给状态,同时调整渲染部分输出id和名称:

import React,{useState,useEffect} from 'react';

function App() {
  const [data,setData]=useState([]);
  const getData=()=>{
    fetch('src/data.json')
      .then(function(response){
        return response.json();
      })
      .then(function(myJson) {
        // 直接取外层对象的users字段赋值
        setData(myJson.users ?? [])
      });
  }
  
  useEffect(()=>{
    getData()
  },[])

  return (
    <ul>
      {data.map((item) =>
        {/* 同时输出id和name */}
        <li key={item.id}>{item.id} {item.name}</li>
      )}
    </ul>
  );
}

export default App;

方法2:用解构方式获取目标数组

也可以在解析响应的时候直接解构出users字段,写法更简洁:

.then(function({ users }) {
  setData(users ?? [])
})

代码里加的?? []是兜底逻辑,避免接口返回结构异常时users为undefined导致调用map方法报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 14:39:00