typescript - Angular 5 将未定义的 @Input() 变量值获取到从 ngOnInit() 调用的函数中
问题描述
这是子组件的代码示例。
import { ... } from '@angular/core';
...
@Component({
...,
templateUrl: './example.component.html',
...
})
export class ExampleComponent implements OnInit {
@Input() dataArray: Array<any>;
constructor(...) {
...
}
ngOnInit() {
this.getData();
}
getData(){
console.log(this.dataArray);
}
}
我正在将 dataArray 创建到父组件中,并使用选择器和输入属性将其传递给子组件。下面是我如何将 dataArray 从父级传递给子级的示例。
<example [dataArray]="dataArray"></example>
我需要在组件初始化时对 dataArray 进行计算并将数据显示在视图中。目前,它永远不会将数据放入 getData()。
解决方案
似乎您没有正确设置 dataArray 或最终比您预期的要晚。请尝试通过另外使用 OnChanges() 来确定它是否已设置。如果您确实正确设置了它但对于 OnInit() 为时已晚,您应该从 OnChanges() 获得输出。
import { ..., OnChanges } from '@angular/core';
...
@Component({
...,
templateUrl: './example.component.html',
...
})
export class ExampleComponent implements OnInit, OnChanges {
@Input() dataArray: any;
constructor(...) {
...
}
ngOnInit() { }
getData(){
console.log('ngOnInit()', this.dataArray);
}
ngOnChanges(changes: SimpleChanges) {
// please note: changes.prop contains the old and the new value...
console.log('ngOnChanges()', this.dataArray);
}
}
推荐阅读
- android - 将 Android Ionic App 更新为 Android Native 版本后的数据迁移
- python - 如何允许用户根据用户输入在程序中存储多个 CSV 文件?- Python
- python - 当 np.nan 设置为默认值时,为什么 np.select 返回 'nan' 作为字符串而不是 np.nan?
- node.js - 未能部署我的 Firebase Api FIREBASE_CONFIG 和 GCLOUD_PROJECT 环境变量丢失
- python - 无法通过终端安装“rasa_nlu”
- string - 如何在颤动中通过多个分隔符分割字符串?
- postgresql - Connecting Local DB to DBeaver
- c# - How to get TypeConverter when using Source Generators
- swiftui - Adding element to array forces view update
- reactjs - Jest-Expo 在示例上崩溃(React.createElement:类型无效 - 应为字符串)