Javascript 在同级组件之间共享数据,同时两个组件都使用*ngIf

Javascript 在同级组件之间共享数据,同时两个组件都使用*ngIf,javascript,angular,angular6,Javascript,Angular,Angular6,所以我有一个父组件,它承载两个同级组件。 像这样的 <div *ngif="somecode()"> <sibling1> </sibling1> </div> <div *ngif="somecode()"> <sibling1 [dataParams]=sibling1object.somedata> </sibling1> </div> 因此,我得到的错误是sibling1ob

所以我有一个父组件,它承载两个同级组件。 像这样的

<div *ngif="somecode()">
 <sibling1>
 </sibling1>
</div>

<div *ngif="somecode()">
 <sibling1 [dataParams]=sibling1object.somedata>
 </sibling1>
</div>


因此,我得到的错误是sibling1object.somedata未定义,但当我从第一个div中删除ngIf()时,错误消失了。
*ngIf解析为true还是false并不重要。因此,即使在成功加载sibling1时,我也会出现错误。

请在parent.component.ts中添加以下代码,而不要使用
[hidden]=“!somecode()”

 public siblingOneLoaded: boolean = false;
 ngOnDestroy(): void {
        if (sibling1object.somedata) {
            this.siblingOneLoaded = true;
        }
    }
将以下代码添加到html文件

 <div *ngIf="siblingOneLoaded">
        <sibling1 [dataParams]=sibling1object.somedata>
        </sibling1>
    </div>

尝试
*ngIf
而不是
*ngIf