【发布时间】:2019-07-18 19:14:24
【问题描述】:
我有 2 个必须传递信息的子组件。
parent.component.html
<childA [loading]="loading">
<childB (loadingChanged)="loadingChangedHandler($event)"></childB>
</childA>
parent.component.ts
loading = false;
constructor(){
......
}
loadingChangedHandler(loadingChild: boolean){
this.loading = loadingChild;
}
childB.component.ts(传递一个变量给父级,这个值传给子级A)
....
@Output() loadingChanged: EventEmitter<boolean> = new EventEmitter();
....
loadData() {
this.loadingChanged.emit(true);
this.service.readDate()
.subscribe((data: any) => {
........
this.loadingChanged.emit(false);
})
}
最后在 childA 组件中,我必须接收变量并执行操作
childA.component.ts
@Input() loading: boolean = false
constructor() {
....}
....
在子 A 中,我有一个可以工作的加载微调器,但我在控制台中收到一条错误消息:
错误错误:ExpressionChangedAfterItHasBeenCheckedError:表达式 检查后有变化。以前的值:“加载:假”。 当前值:'正在加载:true'。
我该如何解决这个问题? 有关于它的文档(ngAfterViewInit),但我不明白为什么它在我的情况下不起作用。
【问题讨论】:
-
看看这个我认为类似类型的问题stackoverflow.com/questions/54072065/…
-
这个问题有@ViewChild 指令,我不使用那个,我的代码只有一个值在子组件之间传递
标签: angular typescript