gpt4 book ai didi

javascript - 错误类型错误 : Cannot set property 'proceed' of undefined

转载 作者:行者123 更新时间:2023-11-30 19:16:16 27 4
gpt4 key购买 nike

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

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)

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

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

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

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,这正是我在本地环境中运行该平台时得到的结果。

但是,当我从部署的 Gitlab 平台运行时,我得到了组件,但图表没有绘制半圆。

我没有足够的声誉来发布图片,否则,人们会更容易明白我的意思。

最佳答案

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

当调试代码时,与 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;
};
};

经过格式化的压缩代码如下:

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() {.

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

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

我希望这能以某种方式提供帮助。

编辑:将 angular-highcharts 升级到 8.0.3 版本,将 highcharts 升级到 7.2。 0 版本为我解决了这个问题:)

关于javascript - 错误类型错误 : Cannot set property 'proceed' of undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57960871/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com