Диаграмма. js всплывающие подсказки не отображаются после вызова update () - PullRequest
0 голосов
/ 01 августа 2020

Я пытался понять эту проблему и думаю, что это может быть связано с проблемой 4991 , но она должна была быть исправлена.

Я вижу, что мой label обратный вызов вызывается всякий раз, когда запускается событие зависания, но на графике ничего не отображается. Я также знаю, что обратный вызов возвращает правильное значение для метки всплывающей подсказки.

Всплывающие подсказки работали, когда я использовал набор данных c stati. Но теперь, когда я позволяю пользователю выбирать данные, которые они сравнивают, с помощью пары элементов <select>, и мне пришлось ввести функцию update(), всплывающие подсказки полностью перестали работать.

My ChartConfiguration

const chartConfig = {
  type: "scatter",
  options: {
    legend: { display: false },
    title: {
      display: true,
    },
    responsive: true,
    tooltips: {
      enabled: true,
      intersect: true,
      mode: 'nearest',
      position: 'nearest',
      callbacks: {
        label: (tooltipItem, data) => {
          const dataPoint = data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index];
          return dataPoint.t as string;
        },
      },
    },
    scales: {
      xAxes: [
        {
          type: "linear",
          position: "bottom",
          scaleLabel: {
            display: true,
          }
        },
      ],
      yAxes: [
        {
          type: "linear",
          position: "left",
          scaleLabel: {
            display: true,
          }
        },
      ],
    },
  },
};

Функция, вызываемая раньше update()

function update() {
  let chartData = {
    datasets: [
      {
        label: `${Config.axisTitles[xSelect.value]} vs ${Config.axisTitles[ySelect.value]}`,
        data: (Config.data).map((row) => ({
          y: row[ySelect.value],
          x: row[xSelect.value],
          t: row.shortname,
        })),
      },
    ],
  };

  chart.data = chartData;
  chart.options.title.text = `${Config.axisTitles[xSelect.value]} vs ${Config.axisTitles[ySelect.value]}`;
  chart.options.scales.xAxes[0].scaleLabel.labelString = Config.axisTitles[xSelect.value];
  chart.options.scales.yAxes[0].scaleLabel.labelString = Config.axisTitles[ySelect.value];
  chart.update();
}

Есть ли что-нибудь особенное, что я должен сделать, чтобы не нарушить всплывающие подсказки?

...