在渲染方法 ReactJS 中获取组件宽度

Get the component width in render method ReactJS

本文关键字:获取 组件 ReactJS 方法      更新时间:2023-09-26

我需要知道渲染方法中组件的宽度,但是在渲染方法中获取DOM元素是不可能的。解决问题我找到了这篇文章。文章中的问题与我的相同。

溶液:

  1. 将组件的宽度保存到组件DidMount方法中的状态。
  2. 订阅窗口调整大小事件和更新状态。

所以我可以从组件的状态中获取组件宽度。

有人知道解决这个问题的另一种方法吗?谢谢。

好吧,您不必将宽度保存在状态中,每次都可以使用 ReactDOM.findDOMNode() 来获取它,但这大约是您将获得的最好的。 您无法在渲染中更新,原因有两个:

  1. 您的 DOM 元素当前正在渲染,但尚不存在
  2. 即使他们这样做了,在渲染中触发更新也是触发无限渲染循环的简单方法。

Tldr:只需使用您拥有的方法,效果很好