Angular 角度9-无法设置未定义的属性“…”
最近,我们升级到了Angular 9。然而,我们在运行时面临一个问题。我们禁用了常春藤,因为它阻碍了我们的建设,现在一切似乎都很好。但是,在运行时,我们得到以下错误:Angular 角度9-无法设置未定义的属性“…”,angular,enums,Angular,Enums,最近,我们升级到了Angular 9。然而,我们在运行时面临一个问题。我们禁用了常春藤,因为它阻碍了我们的建设,现在一切似乎都很好。但是,在运行时,我们得到以下错误: Cannot set property "/sites/34" of undefined 这将导致代码中出现一个枚举,如下所示: enum Sites { SITES_ENDPOINT = '/sites/34' } 我真的不确定是什么问题,以及应该如何解决。我是否应该以某种方式重构所有枚举?我应该将它们更改为对象吗?如果
Cannot set property "/sites/34" of undefined
这将导致代码中出现一个枚举,如下所示:
enum Sites {
SITES_ENDPOINT = '/sites/34'
}
我真的不确定是什么问题,以及应该如何解决。我是否应该以某种方式重构所有枚举?我应该将它们更改为对象吗?如果您有任何想法,我们将不胜感激,谢谢
更新:
在同一个文件的枚举定义的正下方,我有以下代码:
enum Sites {
SITES_ENDPOINT = '/sites/34'
}
const object = this;
@Injectable()
export class SitesService implements Http {
...
constructor() {
sitesInit()
}
get<T>(path: string, opt?): Observable<T> {
for (const key in Sites) {
...
}
}
}
function sitesInit() {
object[Sites.SITES_ENDPOINT] = '/sites/345';
}
我认为您应该将对象和站点迁移到您的服务中。因为object和sitesInit不导出,所以它们不需要是静态的
enum Sites {
SITES_ENDPOINT = '/sites/34'
}
@Injectable()
export class SitesService implements Http {
private object = {};
...
constructor() {
this.sitesInit()
}
get<T>(path: string, opt?): Observable<T> {
for (const key in Sites) {
...
}
}
sitesInit() {
this.object[Sites.SITES_ENDPOINT] = '/sites/345';
}
}
您是否尝试删除最后一个?是的,结果相同。在此之前您是否还收到任何其他错误?@geronimo678不幸的是,只有此错误。您是否尝试删除节点模块目录和npm安装?也许这是一个缓存问题。缓存保存在节点_模块中