1

3 つ目のコンポーネントを介して、あるコンポーネントから別のコンポーネントにステータスを渡そうとしています。

検証コンポーネント -> 表示 -> リスト

検証コンポーネントがステータスを発行します。View on emit は、ViewChild によって引数を List に渡し、そこで関数を起動する関数を起動します。

問題は、List のレンダリングが長すぎて、発行時の ViewChild がまだ定義されていないことです。AfterViewChecked で ViewChild 自体をチェックしましたが、コンポーネントを返すのに数秒かかります。setTimeout(0) も試しましたが、うまくいきませんでした。

検証 Component.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