角度9-无法设置未定义的属性“ ....”

时间:2020-05-15 08:15:36

标签: angular enums

最近,我们升级到了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';
}

1 个答案:

答案 0 :(得分:1)

我认为您应该将object和sitesInit()移到您的服务中。因为没有导出object和sitesInit,所以它们不需要是静态的。

in()