我正在尝试通过第三个组件将状态从一个组件传递到另一个组件。
验证组件 -> 查看 -> 列表
验证组件发出状态。View on emit 启动函数,ViewChild 将参数传递给 List 并在那里启动函数。
问题是 List 渲染时间过长,以至于 ViewChild 在发出时仍然未定义。我在 AfterViewChecked 上检查了 ViewChild 本身,返回组件需要几秒钟。我也试过 setTimeout(0) 但没有运气。
验证组件.ts
this.onStatusChange.emit('success');
查看 Component.html
<validation-component
(onStatusChange)="updateStatusIcon($event)">
</validation-component>
查看 Component.ts
import { ListComponent } from '../list/list.component'
...
@ViewChild(ListComponent) private listComponent;
...
public updateStatusIcon(status): void {
this.listComponent.setStatusIcon(status);
}
触发后updateStatusIcon()
,this.listComponent
仍然未定义。