Я пытаюсь скопировать следующий код в Reaction-chartjs-2:
var data = {
labels: ["January", "February", "March", "April", "May", "June", "July"],
datasets: [{
label: "My First dataset",
backgroundColor: "rgba(255,99,132,0.2)",
borderColor: "rgba(255,99,132,1)",
borderWidth: 2,
hoverBackgroundColor: "rgba(255,99,132,0.4)",
hoverBorderColor: "rgba(255,99,132,1)",
data: [65, 59, 20, 81, 56, 55, 40],
}]
};
var option = {
legend: false,
title: {
display: true,
},
onHover: function(evt) {
var item = myLineChart.getElementAtEvent(evt);
if (item.length) {
console.log("onHover",item, evt.type);
console.log(">data", item[0]._index, data.datasets[0].data[item[0]._index]);
}
}
};
var myLineChart = Chart.Line('myChart', {
data: data,
options: option
});
Я попытался добавить функцию onHover
в options object и получить экземпляр myLineChart следующим образом:
const lineChartInst = {}
class MyChart extends React.Component {
render() {
const chartOptions = {
onHover: e => {
const item = lineChartInst.getElementAtEvent(e)
if(item.length) {
const x = chartData.datasets[0].data[item[0]._index].x,
y = chartData.datasets[0].data[item[0]._index].y
this.props.setXYInfo(x, y)
}
}
}
return (
<Line
...
options={chartOptions}
ref={reference => lineChartInst = reference}
/>
)
}
}
Но я получаю сообщение о том, что getElementAtEvent не является функцией.
Есть идеи, как мне заставить это работать?