我试图通过第三个组件将状态从一个组件传递到另一个组件。
验证组件 - >查看 - >列表
验证组件会发出状态。查看发射启动函数,由ViewChild将参数传递给List并在那里启动函数。
问题是List渲染时间太长,发射时的ViewChild仍未定义。我在AfterViewChecked上检查了ViewChild本身,返回组件需要几秒钟。我也试过setTimeout(0)但没有运气。
验证组件
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
仍未定义。