Ошибка AnyChart «неопределенное не является объектом» возникает при касании графика на мобильном устройстве

При использовании мобильного устройства, которое просматривает график AnyChart, когда вы касаетесь графика, возникает ошибка «неопределенное не является объектом». Это происходит на iOS. У кого-нибудь есть идеи о том, что вызывает это и как решить проблему? Я использую последнюю версию 8.9.0

Я использую iOS 14.4.2 в браузере Chrome, хотя то же самое происходит и при использовании Safari.

Ниже приведен базовый код для создания диаграммы:

this.chart = anychart.stock();

var credits = this.chart.credits();
credits.enabled(false);

this.plot = this.chart.plot(0);
this.plot.yScale().ticks().allowFractional(false);
this.plot.yScale().maximumGap(0);
this.plot.yScale().minimumGap(0);

let activeSeries = this.seriesTypeOptions.find(opt => opt.checked);
if (this.selectedRange === 'intra' && activeSeries.ohlc !== undefined) {
  activeSeries = this.seriesTypeOptions.find(opt => opt.value === 'area');
}
let data = activeSeries.ohlc ? this.ohlcMapping : this.valueMapping;
this.series = this.plot[activeSeries.value](data); 
this.series.name(this.longName + ' (' + this.symbol + ')');
if (this.mainColor && this.mainColor !== '') {
  this.series.stroke(this.mainColor);
  this.series.fill(this.mainColor, 0.5);
}

let grouping = this.chart.grouping();

grouping.maxVisiblePoints(700);

if (this.selectedRange !== 'intra') {
  switch (this.groupOptions) {
    case 'day': {
      grouping.levels([
        { unit: 'day', count: 1 },
      ]);
      grouping.forced(true);
      break;
    }
    case 'week': {
      grouping.levels([
        { unit: 'week', count: 1 },
      ]);
      grouping.forced(true);
      break;
    }
    case 'month': {
      grouping.levels([
        { unit: 'month', count: 1 },
      ]);
      grouping.forced(true);
      break;
    }
    default: {
      break;
    }
  }
}

this.plot.legend().titleFormat('');
this.plot.yAxis().labels().format("{%value}{decimalsCount:0, groupsSeparator:}");

this.plot.crosshair().yLabel().offsetX(-24);
this.plot.xAxis().labels(true);
this.plot.xAxis().minorLabels(true);
this.plot.xAxis().ticks(true);
this.plot.xAxis().minorTicks(true);

this.plot.yGrid().enabled(true);

if (!this.isIndex) {
  let volPlot = this.chart.plot(1);
  volPlot.legend().titleFormat('');
  let volumeSeries = volPlot.column(this.volumeMapping); 
  volumeSeries.name('Volume ' + ' (' + this.symbol + ')');
  volPlot.crosshair().yLabel().offsetX(-24);
  volPlot.height('25%'); 
  volPlot.xAxis().labels(false);
  volPlot.xAxis().minorLabels(false);
  volPlot.xAxis().ticks(false);
  volPlot.yGrid().enabled(true);

  if (this.mainColor && this.mainColor !== '') {
    volumeSeries.stroke(this.mainColor);
    volumeSeries.fill(this.mainColor, 0.5);
  }

  volPlot.yAxis().labels().format("{%value}{decimalsCount:1, scale: (1)(1000)(1000)(1000)|()(K)(M)(B)}");
  volPlot.enabled(this.isVolume);
}

//  add indicators
if (this.selectedRange !== 'intra') {
  let ind = this.indicatorOptions.filter(o => o.checked);
  ind.forEach(i => this.addIndicator(i.type));
}

var scroller = this.chart.scroller();
scroller.area(this.scrollMapping);
scroller.listen('scrollerchange', () => {
  let mv = this.chart.getSelectedRange();
  this.rangeStartDate = new Date(mv.firstVisible);
  this.rangeStopDate = new Date(mv.lastVisible);
});
scroller.enabled(this.isScroller);

let offSet: number = (this.isInfo) ? 425 : 275;
if (this.container !== undefined) {
  this.container.nativeElement.style.height = (window.innerHeight - offSet) + 'px';
  this.chart.container(this.container.nativeElement);
}

//  draw chart
this.chart.draw();

person AndySp    schedule 06.04.2021    source источник
comment
Пожалуйста, не могли бы вы предоставить 1) код диаграммы, воспроизводящий проблему, 2) указать версию iOS, 3) мобильный браузер, который вы используете?   -  person AnyChart Support    schedule 07.04.2021
comment
Я обновил свой вопрос в соответствии с просьбой,   -  person AndySp    schedule 07.04.2021
comment
Спасибо! Мы постараемся воспроизвести проблему и свяжемся с вами в ближайшее время.   -  person AnyChart Support    schedule 08.04.2021


Ответы (1)


Если кто-то столкнется с такой же проблемой. Игнорируйте исключение, выдаваемое диаграммой на мобильном устройстве. Это решило мою проблему.

person AndySp    schedule 23.04.2021