最近,我们升级到了Angular9。但是,在运行时我们遇到了一个问题。我们禁用了常春藤,因为它阻止了我们的构建,现在一切似乎都可以正常运行。但是,在运行时,会出现以下错误:
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';
}
答案 0 :(得分:1)
我认为您应该将object和sitesInit()移到您的服务中。因为没有导出object和sitesInit,所以它们不需要是静态的。
in()