Получение значений осей X, Y при наведении курсора на Chartjs в React-Wrapped 2 - PullRequest
0 голосов
/ 14 мая 2019

Я пытаюсь скопировать следующий код в 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 не является функцией.

Есть идеи, как мне заставить это работать?

...