在渲染方法 ReactJS 中获取组件宽度
Get the component width in render method ReactJS
我需要知道渲染方法中组件的宽度,但是在渲染方法中获取DOM元素是不可能的。解决问题我找到了这篇文章。文章中的问题与我的相同。
溶液:
- 将组件的宽度保存到组件DidMount方法中的状态。
- 订阅窗口调整大小事件和更新状态。
所以我可以从组件的状态中获取组件宽度。
有人知道解决这个问题的另一种方法吗?谢谢。
好吧,您不必将宽度保存在状态中,每次都可以使用 ReactDOM.findDOMNode()
来获取它,但这大约是您将获得的最好的。 您无法在渲染中更新,原因有两个:
- 您的 DOM 元素当前正在渲染,但尚不存在
- 即使他们这样做了,在渲染中触发更新也是触发无限渲染循环的简单方法。
Tldr:只需使用您拥有的方法,效果很好
相关文章:
- 如何在另一个组件中获取指令/组件实例
- Vue.js获取组件中的一个元素
- 从子级获取React dom组件
- React - 从 DOM 元素获取组件以进行调试
- 如何获取子组件的内容Angular 2中的子组件
- 在 ExtJS 中获取父组件
- 如何创建一个组件,我可以设置在 Angular 2 中的属性中获取 URL 数据
- 从子窗体组件ReactJS中获取道具
- 如何在Vue.js中获取组件元素的offsetHeight
- 如果我知道 DOM 元素的 ID,如何获取组件
- 获取组件的实际宽度和高度
- 在渲染方法 ReactJS 中获取组件宽度
- 如何使用javascript获取组件的容器?-HTML
- 如何在react native中获取组件的大小
- Ember模型和组件,获取组件来检测模型中的更改
- 如何在不向其父元素/子元素添加逻辑的情况下获取组件中子元素的dom节点
- 如何从 KnockoutJS 中的组件节点获取组件的视图模型
- 如何在Angular 1.5和Typescript中获取组件控制器中的绑定值?
- CQ5 AEM:如何使用javascript在对话框中按名称获取组件
- 获取组件的Drop Target