首页 > 解决方案 > 无法在构造函数中循环和分配 api 值

问题描述

我有一个导出类型如下:

export type Program{
key: string; value: string;
}

我有从 api 返回的数组值,如下所示:

apival = ["abc", "xyz" ...etc]

在我的组件中,我在构造函数中执行此操作

program: Program[];

constructor(private service: Service){
getval = service.apival;
getval.forEach((a) => {
program.push({
key: a, 
value: ""
})})}

现在我想将返回的数组值作为程序类型的键分配。我正在使用 forEach 循环执行此操作。但是,我收到以下错误:

"Cannot read property 'push' of undefined" 

注意:我尝试在服务本身中执行此操作,但出现此错误:“无法实例化循环依赖”

任何想法,为什么会发生这种情况以及将 getval 分配给程序 [] 的最佳方法是什么。在服务或组件中。

我不想在 OnInit() 上这样做

标签: angulartypescript

解决方案


program: Program[];需要像这样初始化program: Array<Program> = new Array<Program>()。您也可以使用 amap并获得一个新数组。

this.program = getval.map(a=>{return {key:a, value:""}});

推荐阅读