由于插件完成的 dom 突变而导致的未捕获不变冲突
Uncaught Invariant Violation due to dom mutations done by plugin
我在使用名为flickity的javascript插件时遇到了一个问题,它启用了触摸友好的幻灯片图像。
我像这样初始化它:
import Flickity from 'flickity';
componentWillUnmount() {
this.flkty.destroy()
}
componentDidMount() {
this.flkty = new Flickity(this.refs.carousel, {
cellAlign: 'left',
})
}
这一切都工作正常,但问题是它针对我的渲染中的<div ref="carousel"></div>
的div 发生了变化,变成了轻弹元素。当我重新渲染组件时,这有时会导致Uncaught Invariant Violation
错误,因此我想问是否有解决方案可以克服这个问题?
这就是我渲染相关组件的方式
render() {
return (
<div ref="carousel" className="carousel">
{ this.props.src.map((image, index, array) => {
if(image.link != null) {
return (
<div key={index} className="card" style={ {backgroundImage: `url(${image.link})`} }>
<img
src={image.link} />
</div>
);
}
}) }
</div>
);
}
能够通过添加以下内容来解决我的问题:
componentWillUpdate() {
this.flkty.destroy()
}
componentDidUpdate() {
this.flkty = new Flickity(this.refs.carousel, {
cellAlign: 'left',
})
}
相关文章:
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- 在不使用JQuery的情况下隐藏DOM中的选定元素
- 如何在DOM元素上按类型构建此函数
- Windows形成web浏览器控件和Javascript更改的DOM
- Datatables:通过DOM数据源中的名称引用列
- 在DOM中查找一个模式并替换它's的内容使用jquery
- DOM事件通过JSON转换为java
- 将DOM节点值与字符串Javascript进行比较
- delete在Object上效率低下,但在DOM Element's的数据属性,与null out相比
- Javascript-ID冲突的几率
- 流星中DOM的繁殖
- DOM元素和angular元素之间的主要区别是什么
- 当带有渲染器的DOM元素不在屏幕顶部时,移动了场景的坐标
- 如何将Knockout.JS与服务器已经在DOM中呈现的数据同步
- 由于插件完成的 dom 突变而导致的未捕获不变冲突
- 不变冲突:当元素在DOM中时,目标容器不是DOM元素
- 不变冲突: _registerComponent(..):目标容器不是 DOM 元素
- 当添加到第三方页面的DOM时,如何避免HTML id冲突
- React Uncaught错误:不变冲突:_registerComponent(..):目标容器不是DOM元素