React - 如何在组件更新后获取真正的 DOM 元素
React - how to get real DOM element after component is updated
我正在尝试在反应组件渲染后运行一个函数。
render: function(){
return(
<div id="myId"></div>
)
}
在这个函数中,我需要得到一个真正的 DOM 元素,document.getElementById("myId")
所以我尝试在componentDidUpdate
中运行我的函数,但显然我没有在浏览器"绘制"我的div 之前运行,所以我得到了null
.
有优雅的解决方案吗?
你假设在调用 componentDidUpdate
方法时不一定绘制 DOM 元素是对的。
您可以使用 window.requestAnimationFrame
绕过此操作。
onNextFrame() {
var _this = this;
window.requestAnimationFrame(function() {
var domnode = _this.getDOMNode();
if (domnode !== undefined) {
// set your attributes here
jwplayer(domnode).setup({
"file": "http://example.com/myVideo.mp4",
"image": "http://example.com/myImage.png",
"height": 360,
"width": 640
});
}
});
},
componentDidMount() {
this.onNextFrame();
},
componentDidUpdate() {
this.onNextFrame();
}
相关文章:
- 如何在jQuery中获取元素的形式
- 通过id和class属性获取元素
- Javascript:Can't使用getElementById获取元素
- 使用jquery.html()获取元素本身的html
- 如何从iframe内部获取元素
- Javascript函数获取元素内容
- 使用模板后,使用Angular获取元素属性值
- 获取元素类名的部分
- 从JSON.parse获取元素
- 获取元素内部的缩写
- 在不引用文档的情况下使用AngularJS获取元素
- 如何获取元素's的title属性
- 使用Javascript,获取元素的方法是什么,基于打开和关闭标记之间的文本
- Javascript获取元素背景图像,但消除了“;url()”;
- Javascript:按类获取元素,但跳过某个类
- 当display:none时,getElementById()无法获取元素
- 我的ID获取元素不起作用
- 如何获取元素:使用javascript和CORS悬停背景
- 能够获取元素长度,但不能获取内部 HTML
- 如何使用jQuery在模板kendo UI中获取元素类