渲染后使用哪个 Angular 或 Ionic 生命周期钩子来获取元素的 offsetWidth

Which Angular or Ionic lifecycle hook to use to get offsetWidth of element after it is rendered

我需要获取 <video> 元素的宽度,该元素当前的样式设置为父元素高度的 100%。这意味着我只能在浏览器渲染后才能获取宽度(或者至少我是这么认为的)。

我正在使用 IonViewDidEnter 生命周期挂钩,如下所示。问题是我有时得到正确的调光,有时我得到错误的调光。换句话说,随机重新加载会产生两组不同的结果,所以我猜我使用了错误的钩子。

这是我的组成部分 class

@ViewChild('video', { static: false }) private videoElRef: ElementRef;

ionViewDidEnter() {
  this.videoEl = this.videoElRef.nativeElement;
  this.videoWidth = this.videoEl.offsetWidth;
  this.videoHeight = this.videoEl.offsetHeight;
}

我应该使用哪个钩子或其他方法来保证我将在加载后获得 <video> 元素的宽度。

我找到了答案。在一般情况下,这不会回答标题问题,但它至少用 <video> 标签涵盖了我自己的案例。

我发现使用视频元素的 loadedmetadata 事件或 loadeddata 事件是获取 offsetwidthoffsetheight 的一种足够快的方法,而无需尝试提前访问它们.