Как остановить бесконечную рекурсию в обратном вызове - PullRequest
0 голосов
/ 18 ноября 2018

Я пытался понять, почему и как исправить эту бесконечную рекурсию, происходящую в диаграммах Vue legendCallback Vue, но безрезультатно.Помощь очень ценится.

В моем компоненте Vue параметры определены в следующих методах:

  options() {
                var self = this;
                 return {
                    legend: {
                        display: false,
                        position: 'top',
                    },
                    legendCallback: chart=> {
                        return this.generateLegendData(chart)
                    },
                    tooltips: {
                        mode: 'single',
                        callbacks: {
                            label: function (tooltipItems) {
                                return "text"
                            }
                        },
                    }
                }
            },

И мой метод generateLegendData выглядит так:

        generateLegendData(chart) {
          var labels = ["SolarCity", "Einstein", "SpaceX", "Mars", "Tesla"];
          var backgroundColor = [
            "rgba(242,58,48, 0.1)",
            "rgba(110,75,63,1)",
            "rgba(55,72,172,1)",
            "rgba(0,39,39,1)",
            "rgba(166,176,69,1)"
          ];

          var text = [];
          text.push('<ul class="' + chart.id + '-legend">');
          for (var i = 0; i < labels.length; i++) {
            text.push(
              '<li><span style="background-color:' + backgroundColor[i] + '">'
            );
            if (labels[i]) {
              text.push(labels[i]);
              console.log(labels[i]);
            }
            text.push("</span></li>");
          }
          text.push("</ul>");

          return text.join("");
        }

Без цикла for, т. Е. Просто возвращая ожидаемую строку, все работает нормально.

1 Ответ

0 голосов
/ 19 ноября 2018

Возвращение return text.join("") не было проблемой.

Решение перемещает свойство options из метода в вычисляемое свойство.

...