angular - 无法在构造函数中循环和分配 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() 上这样做
解决方案
您program: Program[];
需要像这样初始化program: Array<Program> = new Array<Program>()
。您也可以使用 amap
并获得一个新数组。
this.program = getval.map(a=>{return {key:a, value:""}});
推荐阅读
- php - 将网站上传到主机时出现 Codeigniter 错误
- opengl - OpenGL中带有渐变的透明蒙版
- sql - SQL 正确连接。我怎样才能简化它?
- twilio - 即使我设置了环境变量,Twilio CLI 也不会登录
- postgresql - 如何在 Kubernetes 上使用新模式部署 postgres?
- reactjs - [更新][反应]:排序组件不呈现数据
- devexpress - 如何禁用要在 devexpress 中选择的树列表行
- kotlin - 如何检查 Kotlin 数据类中的属性数量?
- python - 如何在 Macbook pro 上安排 Anaconda Jupyter 笔记本?
- python - 如何从熊猫的数据框中删除行?