无法读取未定义@viewchild 的属性“nativeElement”
2018-12-01
359
情况如下, 我有主文件选项卡组件,其中我使用 @ViewChild() 包含了文本组件;现在在 ngAfterViewInit() 上,我正在初始化菜单和子菜单列表。一旦我完成创建子菜单列表,我就想将它们分配给文本组件。这样,当用户单击文本组件时,他将看到选项卡组件分配的子组件。
ngAfterViewInit() {
// menu initialization
// sub-menu initialization
this.tabTextComponent.nativeElement.selectedSubTabs = this.selectedSubTabs;
}
我尝试过使用和不使用元素引用,但都没有用。我也访问过其他解决方案,但对我来说都不起作用。有人能帮助我吗?
1个回答
您定义 this.tabTextComponent 的方式可能存在问题。请尝试以下操作(假设您的组件的类是 TabTextComponent):
@ViewChild(TabTextComponent) tabTextComponent: TabTextComponent;
ngAfterViewInit() {
// this.tabTextComponent should be defined here
this.tabTextComponent.selectedSubTabs = this.selectedSubTabs;
}
另请注意,除非您尝试对 DOM 执行某些操作,否则无需使用 nativeElement。如果 selectedSubTabs 是 TabTextComponent 类的非私有属性,则您可以直接访问它。
(顺便说一句,您似乎正在尝试从父级设置子组件的属性?您可以考虑改用 @Input 绑定。)
codequiet
2018-12-01