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

React开发常见问题:如何处理外层带data字段的接口响应数据并渲染

处理第二种接口响应结构的正确方法

1. state赋值逻辑

你贴的第二种响应结构中,加密货币数组直接存放在外层对象的data属性下,不存在data.coins的层级,直接取data字段的值赋值给state的coins即可。
函数组件写法示例:

const [coins, setCoins] = useState([])

// 请求回调中赋值
const fetchCoins = async () => {
  const res = await fetch('你的接口地址')
  const resData = await res.json()
  // 直接取响应对象的data字段赋值,加||[]做异常兜底
  setCoins(resData.data || [])
}

类组件写法示例:

componentDidMount() {
  fetch('你的接口地址')
    .then(res => res.json())
    .then(resData => {
      this.setState({
        coins: resData.data || []
      })
    })
}

2. 渲染代码调整

注意第二种响应结构的字段命名已经从下划线格式改为驼峰格式,之前使用的price_usd对应新字段为priceUsd,渲染代码需要对应修改:

// 遍历渲染示例
{coins.map(coin => (
  <h1 key={coin.id}> {coin.name} {coin.priceUsd} </h1>
))}

3. 补充说明

赋值时加|| []是防御性处理,避免接口返回异常时resData.data为undefined,导致后续遍历数组时报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 01:18:03