reactjs - Chart JS & React:悬停时显示旧数据
问题描述
我已经面临这个问题 2 或 3 周了,我已经尝试了 stackoverflow 上的所有方法来修复它,但似乎不可能。
我有一些使用图表 js 库(版本 2.9.4)的图表,当我使用 React Hooks 更新一些数据时,新旧数据/图表相互重叠,并继续显示旧数据。
这是我的代码:
import React, { useEffect, useRef, useState } from 'react';
import { Chart } from 'chart.js';
import { barChartOptions } from './config';
const Bar = ({ data }) => {
const chartContainer = useRef(null);
const [, setChartInstance] = useState(null);
useEffect(() => {
if (chartContainer && chartContainer.current) {
const context = chartContainer.current.getContext('2d');
const newChartInstance = new Chart(context, {
type: 'horizontalBar',
options: barChartOptions,
data,
});
setChartInstance(newChartInstance);
}
}, [chartContainer, data]);
return <canvas ref={chartContainer} />;
};
export default Bar;
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
任何帮助,将不胜感激
解决方案
推荐阅读
- javascript - 在 Fabric.js 中将对象拖动限制设置为圆形
- java - 如何使用 IO 资源从源中装饰 Stream 实例
- javascript - 渲染后的剑道工具栏事件
- html - 使用 VBA 让 Internet Explorer 从列表中选择项目
- gcc - 无需安装即可运行或使用 GCC
- frameworks - 当 Microsoft 更新基本包时,有什么方法可以通知?
- c# - 无法将整个列表打印到控制台
- sql - 在 Oracle SQL Developer 中比较两个 CLOB 列
- c++ - c ++迭代成员函数
- azure - 如何将 Azure VM 映像移动到其他位置