如何解决ViewChild 返回结果,然后变为未定义Angular 11
我的 ViewChild 在 NgAfterViewInit 上正确登录,但在那之后返回 undefined。 当它被初始化时,它会正确记录,但是(在我的例子中是调整大小的函数)记录未定义。
HTML:
<div class="hor-nav" #horNav>
<ul [hidden]="!navModule" class="top-nav-module">
<li *ngFor="let menu of menus; let i = index" class="hor-nav-item" #navItem>
<a>
...some link
</a>
</li>
</ul>
JS:
@ViewChild('horNav',{static: false}) horNav: ElementRef; // tried with static: true too
ngAfterViewInit() {
console.log('HOR NAV',this.horNav) // This works just fine: HOR NAV ElementRef {nativeElement: div.hor-nav}
}
ngOnInit() {
window.addEventListener('resize',this.calculateNavBarWidth);
}
public calculateNavBarWidth() {
console.log('Offset Width: ',this.horNav) // This returns undefined
}
解决方法
好的,想通了。它是事件监听器。这现在有效:
window.addEventListener('resize',() => this.calculateNavBarWidth());
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。