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

React/JSX中如何遍历Bitpanda API数据并展示?

解决Bitpanda API数据遍历问题

为什么会出现data.map is not a function?

Bitpanda的/v1/ticker接口返回的是对象类型的数据(以币种代码如BTC、ETH作为键),而map是数组的专属方法,对象无法调用这个方法,所以会触发报错。

正确遍历对象数据的方法

你已经注意到可以用Object.keys(data)获取键值,这里提供两种实用的遍历实现方式:

方法1:用Object.entries()直接获取键值对数组

Object.entries(data)会把对象转换成[币种代码, 价格数据]格式的数组,直接用map遍历即可:

import MyComponents from './MyComponents';
import useFetch from 'react-fetch-hook';
import { useState } from 'react';

function App() {
  
  const {isLoading, error, data} = useFetch("https://api.bitpanda.com/v1/ticker");
  
  if(isLoading) return (<div>is loading .. .. ..</div>);
  if(error) return(<div>an error occurred .. .. </div>); 
  
  return (
    <div className="App">
      <MyComponents />
      
      <h3>on bitpanda</h3>
      <h2>Coin Prices</h2>

      {/* 遍历所有币种数据生成卡片 */}
      <div className="coin-cards">
        {Object.entries(data).map(([coinSymbol, coinData]) => (
          <div key={coinSymbol} className="card">
            <h4>{coinSymbol}</h4>
            <p>EUR Price: {coinData.EUR}</p>
            <p>USD Price: {coinData.USD}</p>
          </div>
        ))}
      </div>
    </div>
  );
}

export default App;

方法2:用Object.keys()获取币种键再遍历

如果只想先拿到币种代码,再通过键去取对应数据,可以用这种方式:

<div className="coin-cards">
  {Object.keys(data).map(coinSymbol => {
    const coinData = data[coinSymbol];
    return (
      <div key={coinSymbol} className="card">
        <h4>{coinSymbol}</h4>
        <p>EUR Price: {coinData.EUR}</p>
      </div>
    );
  })}
</div>

关键注意点

  • 遍历React元素时必须添加key属性(这里用币种代码coinSymbol作为key,保证唯一性)
  • 可根据需求筛选展示的字段(比如只显示EUR价格,或添加其他币种的价格)

内容的提问来源于stack exchange,提问作者Pa.Don

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 22:55:18