关于video JS插件在react中报错Uncaught DOMException: Failed to execute 'removeChild' on 'Node'

近日项目中需要播放rtmp视频流,采用了video.js插件,使用过程中报错
Uncaught DOMException: Failed to execute ‘removeChild’ on ‘Node’: The node to be removed is not a child of this node.
在React中使用第三方插件(比如jQuery)来更新DOM树结构时,会出现类似这种错误。
React只对内部的DOM树及状态负责,外部插件修改之后(比如将某个节点拖动到另一个节点),再更新state来重新渲染,就会出问题
问题主要是出在dispose这个方法,每次调用这个方法就会把此节点移除
解决方法是用一个新的div包裹他们,这样外层div就变成了被remove的对象,就不会发生无法移除的问题了

官方文档如下
https://docs.videojs.com/tutorial-react.html

你可能感兴趣的