如何在用Reaction包装的图表组件中实现图表数据的自动更新?
例如,我从后端请求的数据会发生变化,我想在它发生变化时对其进行更新.
我试图查找一些图库的文档,但没有找到答案.
如何在用Reaction包装的图表组件中实现图表数据的自动更新?
例如,我从后端请求的数据会发生变化,我想在它发生变化时对其进行更新.
我试图查找一些图库的文档,但没有找到答案.
In VChart, you can update the chart by calling either updateSpec or updateData.
要更新图表数据,可以在Reaction组件中初始化图表实例时使用REF保存该图表实例.然后,使用useEffect设置需要更新的数据的依赖项,并在回调函数中调用图表实例的updateData方法.
VChart还提供了Reaction-VChart包装器:
https://www.visactor.io/vchart/guide/tutorial_docs/Cross-terminal_and_Developer_Ecology/react个
您可以参考下面的代码示例来使用Reaction-VChart更新图表数据.
点击"更新条形图的数据"按钮可以更新图表的数据.
import "./styles.css";
import { BarChart } from "./BarChart";
import { LineChart } from "./LineChart";
import { AreaChart } from "./AreaChart";
import { getBarData } from "./bar-data";
import { useState } from "react";
const colorMaps = {
default: [
"#6690F2",
"#70D6A3",
"#B4E6E2",
"#63B5FC",
"#FF8F62",
"#FFDC83",
"#BCC5FD",
"#A29BFE",
"#63C4C7",
"#F68484"
],
red: [
"#c12e34",
"#e6b600",
"#0098d9",
"#2b821d",
"#005eaa",
"#339ca8",
"#cda819",
"#32a487"
]
};
export default function App() {
const [barData, setBarData] = useState<any[]>(getBarData());
const [colors, setColors] = useState<string[]>(colorMaps.default);
const handleUpdateBarData = () => {
setBarData(getBarData());
};
const handleUpdateColors = () => {
if (colors === colorMaps.default) {
setColors(colorMaps.red);
} else {
setColors(colorMaps.default);
}
};
return (
<div className="App">
<div>
<img src="https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/logo_500_200_light.png" />
</div>
<button onClick={handleUpdateBarData}>
Update the data of bar chart
</button>
<button onClick={handleUpdateColors}>update colors</button>
<h2>A Bar Chart</h2>
<BarChart data={barData} colors={colors} />
<h2>A Line Chart</h2>
<LineChart colors={colors} />
<h2>A Area Chart</h2>
<AreaChart colors={colors} />
</div>
);
}
在线演示:https://codesandbox.io/S/visator-vchara-action-demo-forked-jsqqjj
Reaction-vChart教程:https://www.visactor.io/vchart/guide/tutorial_docs/Cross-terminal_and_Developer_Ecology/react个