highcharts Angular :HighChart TreeMap未使用新数据进行更新

6jjcrrmo  于 2022-11-11  发布在  Highcharts
关注(0)|答案(2)|浏览(205)

我试图用新数据更新我的highcharts树图,但是当我点击更新时,它似乎没有React。只有标题被改变了。
此外,在多个页面上建议的选项似乎不起作用:

this.chartOptions.series[0].data = this.datatable; // ERROR

下面是stackblitz中的完整代码和更新方法:

handleUpdate() {
this.chartOptions.title = {
  text: 'updated'
};
this.datatable = [{
  name: 'A',
  value: 6,
  colorValue: 1
}, {
  name: 'B',
  value: 6,
  colorValue: 2
}];
this.chartOptions.data = this.datatable;
this.updateFlag = true;
}

如有任何建议,我们将不胜感激。

hxzsmxv2

hxzsmxv21#

新的数据必须输入chartOption对象的序列中。根据您的代码,我修改了handleUpdate代码。

handleUpdate() {
  this.chartOptions.title = {
    text: 'updated',
  };
  this.datatable = [
    {
      name: 'A',
      value: 4,
      colorValue: 1,
    },
    {
      name: 'B',
      value: 6,
      colorValue: 2,
    },
  ];

  // modified code 1
  this.chartOptions.series[0] = {
    type: 'treemap',
    layoutAlgorithm: 'squarified',
    alternateStartingDirection: true,
    data: this.datatable,
  };

  // modified code 2
  this.chartOptions.series[0]['data'] = this.datatable;

  this.updateFlag = true;
}

使用修改后的代码1或2。
如果您按照下面的方式编写代码,则会遇到以下错误。

this.chartOptions.series[0].data = this.datatable;

属性'data'不存在于型别'SeriesOptionsType'上。属性'data'不存在于型别'SeriesAbandsOptions'上。
这是因为'data'对象被定义为可选

export interface SeriesTreemapOptions extends PlotTreemapOptions, SeriesOptions {
    data?: Array<(number|null|PointOptionsObject)>;
    dataParser?: undefined;
    dataURL?: undefined;
    stack?: undefined;
    type: "treemap";
}
z9smfwbn

z9smfwbn2#

您缺少图表引用,没有回调来设置对图表的引用。如果您希望更新图表,请引用chartRef,它将正常工作。

chartCallback: Highcharts.ChartCallbackFunction = chart => {
    this.chartRef = chart;
  };

现场演示:https://stackblitz.com/edit/highcharts-angular-basic-line-nteedw?file=src/app/app.component.ts
Angular 的Highcharts Package 器:https://github.com/highcharts/highcharts-angular#installing

相关问题