OPV*_*OPV 9 typescript angular angular-lifecycle-hooks
我尝试这样做:
@Input() data: any[] = [];
Run Code Online (Sandbox Code Playgroud)
在 ngOnInit 里面我看到undefined:
ngOnInit() {
console.log(this.data);
}
Run Code Online (Sandbox Code Playgroud)
因此,当我尝试获取长度时,在下面的代码中出现错误:return this.data.length;
因为它是未定义的。
为什么默认情况下初始化不起作用?
@Input() data: any[] = [];
Run Code Online (Sandbox Code Playgroud)
您需要使用OnChanges角度指令。
export class AppComponent implements OnChanges {
...
ngOnChanges(changes: SimpleChanges) {
this.data = changes.data.currentValue; // fetch the current value
console.log(this.data);
}
...
}
Run Code Online (Sandbox Code Playgroud)
有关该指令的更多信息可以在文档中找到。
当 Angular(重新)设置数据绑定输入属性时进行响应。该方法接收当前和先前属性值的 SimpleChanges 对象。
在 ngOnInit() 之前以及每当一个或多个数据绑定输入属性发生更改时调用。
| 归档时间: |
|
| 查看次数: |
8442 次 |
| 最近记录: |