reactjs - 使用 react 钩子时如何在 react-chartjs 中使用动态数据?
问题描述
我正在尝试使用 react-chartjs-2 制作条形图。我的状态中有图表数据,但由于数据来自 API,因此需要一些时间才能显示出来。我尝试使用它来解决它,if else
但它没有用。我想知道将动态数据放入图表的正确方法。
代码:
import React, { useContext, useEffect } from "react";
import { Bar } from "react-chartjs-2";
import { Context } from "../../../store/store";
import "./Chart.scss";
const Chart = () => {
const [state, dispatch] = useContext(Context);
console.log(state.audioFeatures);//data I want to show
const data = {
labels: [
"acousticness",
"danceability",
"energy",
"instrumentalness",
"liveness",
"speechiness",
"valence",
],
datasets: [
{
label: "My First dataset",
fillColor: "white",
backgroundColor: [
"rgba(255, 99, 132, 0.3)",
],
borderColor: [
"rgba(255,99,132,1)"
],
gridLines: { color: "white" },
borderWidth: 1,
hoverBackgroundColor: "rgba(255,99,132,0.4)",
hoverBorderColor: "rgba(255,99,132,1)",
data:""
},
],
};
return (
<div className="chart-container">
<div>
{state.audioFeatures ? (
<Bar
data={data}
width={700}
height={500}
options={{
maintainAspectRatio: false,
}}
/>
) : null}
</div>
</div>
);
};
export default Chart;
解决方案
您是否尝试过类似的方法:
<Bar
data={state.audioFeatures}
...
/>
或者:
const data = {
labels: [
...
],
datasets: [
{
...
data: state.audioFeatures
},
],
};
return (
<div className="chart-container">
<div>
{state.audioFeatures ? (
<Bar
data={data}
...
/>
) : null}
</div>
</div>
);
推荐阅读
- python-3.x - 通过顺序函数调用更新 tkinter 标签
- sql - 如何合并空列以获取日期范围
- javascript - 请求 rust Rocket 服务器获取来自 JavaScript 应用程序的错误连接被拒绝
- typescript - 如何获得 html data-* 属性的类型安全
- onelogin - Onelogin 通过 API 令牌问题使用会话访问第三方应用程序
- javascript - 如何删除 HTML 表格行
- c# -
.Contains 方法总是返回 false - selenium - 隐式等待移除的可能影响
- shopware - 如何在 shopware 6 中启用 php 错误显示?
- ruby-on-rails - 如何在 Ruby on Rails 中为 aws-fog S3 存储使用 assume_role_with_web_identity 身份验证?