Highcharts: Fehler beim Rendern leerer Tortendiagramme nach dem Upgrade auf 8.1.1

Erstellt am 14. Juni 2020  ·  22Kommentare  ·  Quelle: highcharts/highcharts

Erwartetes Verhalten

Ein leeres Kreisdiagramm wird ohne Fehler gerendert.

Tatsächliches Verhalten

Ein Fehler wird angezeigt:
ReferenceError: Highcharts is not defined
https://github.com/highcharts/highcharts/blob/decfc3ab47ec88e28472f065fd2454b46c9f1fd1/js/parts/PieSeries.js#L789

Live-Demo mit Schritten zum Reproduzieren

https://codesandbox.io/s/highcharts-vue-demo-ye65e

Produktversion

8.1.1

Betroffene(r) Browser

Alle

Done Regression

Hilfreichster Kommentar

Bestätigen Sie, dass dies in 8.1.2 auch für mich immer noch ein Problem ist

https://stackblitz.com/edit/angular-ivy-udtk3a?file=package.json

Alle 22 Kommentare

Alle dynamischen Tortendiagramme, die leer initialisiert und später asynchron mit Daten gefüllt werden, werden durch das Update von 8.1.0 auf 8.1.1 unterbrochen

Hallo @pablolmedorado und @clemeno
Vielen Dank für die Meldung des Problems!

Es sieht so aus, als ob das Problem nur bei der neuesten Version auftritt und mit allen Wrappern zusammenhängt. Tatsächlich ist es jedoch bereits im master Zweig behoben, denn nachdem der neueste Build von master in das Codesandbox-Beispiel eingefügt und Highcharts-Versionen ersetzt wurden, sieht es so aus, als ob das Problem verschwindet.
Zusammenfassend müssen wir in den kommenden Tagen eine neue Version veröffentlichen, und dieses Problem wird automatisch behoben.

Live-Beispiel: https://codesandbox.io/s/highcharts-vue-demo-61e0v

Mit freundlichen Grüße!

Dieses Problem scheint in der veröffentlichten Version 8.1.2 noch vorhanden zu sein, zumindest in der auf npm veröffentlichten.

Problem bei der Wiedereröffnung.

@bre1470 - kannst du das überprüfen? #13681 ist geschlossen, aber es scheint, dass der Highcharts Namespace auch im Kern verwendet wird, nicht nur in Modulen. Demo: https://codesandbox.io/s/highcharts-vue-demo-5o9qu?file=/package.json

Bestätigen Sie, dass dies in 8.1.2 auch für mich immer noch ein Problem ist

https://stackblitz.com/edit/angular-ivy-udtk3a?file=package.json

In zwei Szenarien wird es reproduziert:

  1. Wenn series.data leer ist
  2. Wenn alle y-Achsen in den Daten 0 sind

Neugierig auf Problemumgehungen, bis ein Fix verfügbar ist. Verwenden Sie den Repro-Link von @pawelfus und ändern Sie die Highcharts-Version auf 8.1.0 _scheint_, um dieses Problem zu beheben. Ist dies die vorgeschlagene Problemumgehung für den Moment?

Neugierig auf Problemumgehungen, bis ein Fix verfügbar ist. Verwenden Sie den Repro-Link von @pawelfus und ändern Sie die Highcharts-Version auf 8.1.0 _scheint_, um dieses Problem zu beheben. Ist dies die vorgeschlagene Problemumgehung für den Moment?

In unserem Fall wurde das Problem dadurch ausgelöst, dass ein Diagramm ohne Daten erstellt und die Daten später hinzugefügt wurden. Zufällig hatten wir die Daten zu diesem Zeitpunkt bereits und konnten so das Diagramm mit Daten erstellen, wodurch das Problem vermieden wurde. Wenn das eine Option für Sie ist, ist es einen Blick wert.

@kennyjwilli Wenn es Änderungen seit 8.1.0 gibt, die Sie nutzen möchten, können Sie die Methode drawEmpty wie folgt einschließen:

// Workaround for https://github.com/highcharts/highcharts/issues/13710
(function(H) {
  H.seriesTypes.pie.prototype.drawEmpty = function() {
    var centerX,
      centerY,
      start = this.startAngleRad,
      end = this.endAngleRad,
      options = this.options;
    // Draw auxiliary graph if there're no visible points.
    if (this.total === 0) {
      centerX = this.center[0];
      centerY = this.center[1];
      if (!this.graph) {
        this.graph = this.chart.renderer
          .arc(centerX, centerY, this.center[1] / 2, 0, start, end)
          .addClass("highcharts-empty-series")
          .add(this.group);
      }
      this.graph.attr({
        d: H.SVGRenderer.prototype.symbols.arc(
          centerX,
          centerY,
          this.center[2] / 2,
          0,
          {
            start: start,
            end: end,
            innerR: this.center[3] / 2
          }
        )
      });
      if (!this.chart.styledMode) {
        this.graph.attr({
          "stroke-width": options.borderWidth,
          fill: options.fillColor || "none",
          stroke: options.color || "#cccccc"
        });
      }
    } else if (this.graph) {
      // Destroy the graph object.
      this.graph = this.graph.destroy();
    }
  }
})(Highcharts);

Arbeitsbeispiel auf codeandbox.io

Ansonsten empfehlen wir vorerst 8.1.0 zu verwenden.

Schätze, der Fix Nr. 13770 adressiert nicht Nr. 13722

Haben eine Demo bereitgestellt, um das Problem in #13722 zu reproduzieren
Die folgende Zeile ist die Ursache dieses Problems.
https://github.com/highcharts/highcharts/blob/c7e1976467a3b0e1620d44a414af2470716732b9/js/parts/ColumnSeries.js#L571

Das passiert mir immer noch in 2.7.0

https://stackblitz.com/edit/angular-ivy-2zlkmm

Hallo @Crocsx - dieser Fix wird nicht veröffentlicht. Die nächste Veröffentlichung ist für nächsten Monat geplant. Im Moment müssen Sie entweder ein Downgrade durchführen oder die hier gepostete Workaorund verwenden: https://github.com/highcharts/highcharts/issues/13710#issuecomment -650014654

PS: Aktuelle Highcharts-Version ist v8.1.2

ah richtig, tut mir leid, ich habe das Highchart-Angular-Update verwechselt, habe nicht gesehen, dass dieses Highchart noch in 8.1.2 war, sorry

Hallo @Crocsx - dieser Fix wird nicht veröffentlicht. Die nächste Veröffentlichung ist für nächsten Monat geplant. Im Moment müssen Sie entweder ein Downgrade durchführen oder die hier gepostete Workaor verwenden: #13710 (Kommentar)

PS: Aktuelle Highcharts-Version ist v8.1.2

@pawelfus hast du einen Termin für die nächste Veröffentlichung?

Wir zielen nächste Woche auf @felipemfp

Ich bin auf ein ähnliches Problem gestoßen. Nachdem Sie auf die Legende geklickt hatten, waren die anderen Daten 0. Danke!
"highcharts": "^8.2.0",

Hallo @the-gc - Ich kann das Problem in v8.2.0 nicht reproduzieren, schau mal: https://jsfiddle.net/BlackLabel/ncpL97eq/ - kannst du meine Demo aktualisieren? Danke!

Ich kann bestätigen, dass das Update auf Highcharts 8.2.0 das Problem für uns behoben hat.

Danke!

Hier auch, funktioniert gut

Hallo @pawelfus - Das Projekt wurde heute umgebaut und das Problem ist gelöst, vielen Dank!

Danke für die Bestätigung!

Dies geschah auch bei mir, weil es in meiner yarn.lock Datei mehrere Versionen von Highcharts gab. Nach der Konsolidierung (am 8.2.0) war der Absturz weg.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen