有什么方法可以将 API 数据映射或表示为 ReactJS 中的图表吗?

Is there any method to map or represent API data to Chart in ReactJS?

我正在使用 API 数据,使用 React 图表以图形表示形式显示它。 API 数据如下所示:

0:
CPSA: "0.00"
CRSA: "0.00"
XBA: "0.00"
XSA: "0.00"
audbal: "1.00"
audnet: "1.00"
date: "2021-12-25T05:31:40.497Z"
xnaaud: "0.0100000000"
xnabal: "100.0000000000"
__v: 0
_id: "617d00f1e85e769931f42483"
[[Prototype]]: Object
1:
CPSA: "11.81"
CRSA: "40.95"
XBA: "20.00"
XSA: "0.00"
audbal: "73.76"
audnet: "72.76"
date: "2021-12-25T06:11:14.824Z"
xnaaud: "0.0119063760"
xnabal: "6195.0000000000"
__v: 0
_id: "61c6b6025547fdf4cd6ecb6c"

我想将 xnaaud 和日期属性映射到图表上。 我正在使用代码:

const [Data, setData] = useState([]);
    const data = {
            labels: [Data.date],
            datasets: [
              {
                label: 'XNA/AUD',
                fill: false,
                lineTension: 0.0,
                backgroundColor: 'rgb(41, 33, 116,0.5)',
                borderColor: 'rgb(41, 33, 116,0.5)',
                pointHitRadius: 20,
                data:[parseFloat(Data.xnaaud)],
              },
            ]
          };
     useEffect(() => {
            async function fetchBooks() {
              const response = await fetch('/audlogget');
              const json = await response.json();
              setData(json.al);
              console.log(json.al)
          }
          fetchBooks();
      },[]);
    if(!Data)
    {
      return <Loading/>;
    }
      return (
        <div className="chart">
          <Line data={data} />
        </div>
      )
    }

但问题是图表中没有显示这些值。该图在使用 API 数据时不显示任何内容,但在为标签和数据提供静态值时它正在工作。 代码中有什么问题?

Data 似乎是一个对象数组,您提到的结构是 API 数据。在那种情况下,此数据必须 mapped 到单独的数组才能获得 data.labels 和唯一的 dataset.

data

这可以按如下方式完成:

const data = {
  labels: Data.map(o => o.date), // first change
  datasets: [{
    label: 'XNA/AUD',
    fill: false,
    lineTension: 0.0,
    backgroundColor: 'rgb(41, 33, 116,0.5)',
    borderColor: 'rgb(41, 33, 116,0.5)',
    pointHitRadius: 20,
    data: Data.map(o => parseFloat(o.xnaaud)) // second change
  }]
};