错误TypeError:无法设置未定义的属性“进行" [英] ERROR TypeError: Cannot set property 'proceed' of undefined

查看:419
本文介绍了错误TypeError:无法设置未定义的属性“进行"的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用Highcharts Javascript图表引擎绘制一些图表,我已经全部设置好了,在我的本地开发环境中可以正常工作,但是当我将其部署到Gitlab并访问它时,它为我提供了以下内容错误:

I'm trying to draw some charts using Highcharts Javascript charting engine, I have it all set up, it works fine in my local development environment, but when I deploy it to Gitlab and access it, it is giving me the following error:

ERROR TypeError: Cannot set property 'proceed' of undefined
    at t.<computed> (main-es2015.7538dcc357c548058d75.js:1)
    at Object.<anonymous> (main-es2015.7538dcc357c548058d75.js:1)
    at Object.t.<computed> [as arc] (main-es2015.7538dcc357c548058d75.js:1)
    at A.getPlotBandPath (main-es2015.7538dcc357c548058d75.js:1)
    at s.renderBackground (main-es2015.7538dcc357c548058d75.js:1)
    at s.render (main-es2015.7538dcc357c548058d75.js:1)
    at main-es2015.7538dcc357c548058d75.js:1
    at Array.forEach (<anonymous>)
    at t.each (main-es2015.7538dcc357c548058d75.js:1)
    at t.Chart.<anonymous> (main-es2015.7538dcc357c548058d75.js:1)

我正在尝试从公共项目中获取我的Gitlab提交,以便分析来自特定语言或库的提交数量并将其放置在图表中,以便用户可以看到差异.

I am trying to get my Gitlab commits from my public projects in order to analyze the number of commits from a specific language or library and place them in a chart so that the user can see the difference.

我已经用谷歌搜索了这个错误,并且发现了非常相似的错误,但是没有一个可以解决我的问题.我还尝试在平台上查找属性proceed,但是看起来好像是highcharts正在运行或在执行时调用的东西.

I have googled this error and I have found very similar ones, but none of them has been the solution to my problem. I also tried looking for the property proceed in my platform, but it looks like it is something that highcharts is running or calling when executing.

我正在使用它来构建组件:

I'm using this to build the component:

if (this.data.gitlab) {
      this.seriesData.push({
        name: 'GitLab',
        y: this.data.gitlab,
        color: '#e24329',
        radius: `${radius}%`,
        innerRadius: `${radius - 7}%`
      });
      this.seriesBackgrounds.push({
        outerRadius: `${radius}%`,
        innerRadius: `${radius - 7}%`,
        borderWidth: 0
      });
    }

这将创建图表:

this.skillChart = new Chart(<any>{
      chart: {
        type: 'solidgauge',
        spacing: [0, 0, 0, 0],
        backgroundColor: 'transparent',
        borderColor: 'transparent'
      },
      title: null,
      pane: {
        center: ['50%', '80%'],
        size: '130%',
        startAngle: -90,
        endAngle: 90,
        background: this.seriesBackgrounds
      },
      credits: {
        enabled: false
      },
      yAxis: {
        min: 0,
        max: this.maxScore,
        gridLineWidth: 0,
        lineWidth: 0,
        minorGridLineWidth: 0,
        minorTickWidth: 0,
        tickWidth: 0,
        labels: {
          enabled: false
        }
      },
      tooltip: {
        borderWidth: 0,
        followPointer: true,
        pointFormat: '<span style="color:{point.color}">\u25CF</span> {point.name}: <b>{point.y}</b><br/>',
        shared: true,
        useHTML: true
      },
      series: [
        {
          animation: {
            duration: 1500
          },
          dataLabels: {
            enabled: false
          },
          data: this.seriesData
        }
      ]
    });

当我运行平台时,我希望看到一个图表,显示一个半圆形的条形图,顶部的提交次数为10,这就是我在本地环境中运行该平台时得到的结果.

When I run the platform I expect to see a chart showing a semi-circular bar with the number of commits with 10 as the top, which is just what I get when I run the platform in my local environment.

但是,相反,当我从已部署的Gitlab平台运行时,我得到了组件,但图表未绘制半圆.

But instead, when I run from the deployed Gitlab platform, I get the component but the chart does not draw the semicircle.

我没有足够的声誉来发布图像,否则,人们会更容易理解我的意思.

I have not enough reputation to post the images, otherwise, it would have been easier for people to see what I mean.

推荐答案

我遇到了同样的问题.我的观察:我正在使用通过angular-highcharts与NPM一起安装的Highcharts JS v6.1.4(2018-09-25).

I've fallen in the very same issue. My observation: I'm using Highcharts JS v6.1.4 (2018-09-25) installed with NPM via angular-highcharts.

调试时,该代码将破坏与highcharts.src.js片段相关的压缩代码:

When debugging the code is breaking in the minified code related to this fragment of highcharts.src.js:

/**
 * Wrap a method with extended functionality, preserving the original function.
 *
 * @function Highcharts.wrap
 *
 * @param {*} obj
 *        The context object that the method belongs to. In real cases, this is
 *        often a prototype.
 *
 * @param {string} method
 *        The name of the method to extend.
 *
 * @param {Function} func
 *        A wrapper function callback. This function is called with the same
 *        arguments as the original function, except that the original function
 *        is unshifted and passed as the first argument.
 */
H.wrap = function (obj, method, func) {
    var proceed = obj[method];
    obj[method] = function () {
    var args = Array.prototype.slice.call(arguments),
        outerArgs = arguments,
        ctx = this,
        ret;
        ctx.proceed = function () {
            proceed.apply(ctx, arguments.length ? arguments : outerArgs);
        };
        args.unshift(proceed);
        ret = func.apply(this, args);
        ctx.proceed = null;
        return ret;
    };
};

格式化后的最小化代码如下:

The minified code, formated, is like this:

a.wrap = function(a, h, e) {
    var m = a[h];
    a[h] = function() {
        var a = Array.prototype.slice.call(arguments)
            , p = arguments
            , u = this;
        u.proceed = function() {
            m.apply(u, arguments.length ? arguments : p)
        }
        ;
        a.unshift(m);
        a = e.apply(this, a);
        u.proceed = null;
        return a
    }
}
;

我已经在2个环境中部署了;在其中一个中,该代码有效,但在另一个中则无效.在失败的那个中,我调试了this变量,并在达到赋值时未赋值:u = this,因此在下一行:u.proceed = function() {中会引发错误.

I've deployed in 2 environments; in one of them, the code works, but it does not in the other. In the failing one, I debugged and this variable is unassigned when reaching the assignment: u = this therefore an error is raised in the next line: u.proceed = function() {.

在我的其他环境中,this的值为Window,具有proceed属性,然后一切正常.

In my other environment, this has Window as value, which has a proceed attribute, and then everything works fine.

到目前为止,我还没有弄清楚为什么会这样.

I have not figured out why this is happening so far.

我希望这可以有所帮助.

I hope this can help somehow.

对我来说,将angular-highcharts升级到8.0.3版本并将highcharts升级到7.2.0版本可以解决此问题:)

Upgrading angular-highcharts to 8.0.3 version and highcharts to 7.2.0 version fixed the issue for me :)

这篇关于错误TypeError:无法设置未定义的属性“进行"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆