1

我正在尝试通过第三个组件将状态从一个组件传递到另一个组件。

验证组件 -> 查看 -> 列表

验证组件发出状态。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仍然未定义。

4

0 回答 0