无法为属性构造查询,因为未定义查询选择器

时间:2017-03-20 13:01:06

标签: angular

目前,Angular 2中存在其他组件的组件存在此问题。 '主要'的组成部分。组件可以在层次结构中多次存在。

但是我收到了这个错误: "无法构建属性" navComponent" " SidenavLinkComponent"因为查询选择器没有定义"

SidenavLinkComponent:
@ContentChild(SidenavNavComponent) navComponent: SidenavNavComponent;

SidenavNavComponent:
@ContentChildren(SidenavLinkComponent) linkComponents: QueryList<SidenavLinkComponent>;

我已经制作了这个纤细的羽毛球,问题出现了: Plunker

我不知道为什么会这样。

1 个答案:

答案 0 :(得分:61)

这是因为SidenavComponentSidenavNavComponent之间存在循环依赖关系。可以使用forwardRef解决此问题。别忘了导入它:

import { forwardRef } from '@angular/core';

@ViewChild(forwardRef(() => SidenavNavComponent))
private navComponent: SidenavNavComponent;

Plunker example