我正在使用一个名为gridalicious的jquery插件以类似于拼贴的网格样式显示我的图像,这在第一次渲染中效果很好,当我在componentDidUpdate方法中调用它时,这会将样式应用于我的元素和正确显示它们......
现在的问题是,当我需要更新图库并添加新元素时,gridalicious包含自己的方法来添加新元素,避免更改先前加载的图像的位置和大小....
$('#append').click(function(){
$("#example3").gridalicious('append', makeboxes());
});
我最初的想法是将这些图像添加到我的状态,React会(并且实际上)聪明地注意到只需要附加一些图像,然后再次运行库来自定义大小和位置。麻烦的是,当我这样做时,我以前的图像被修改为库并改变它们的大小,外观甚至位置...通知比网格库应用一些算法来确定哪些是最佳尺寸,位置和排序顺序图像和显示它们获得拼贴效果......
我想我需要避免反应再次渲染库(使用shouldComponentUpdate我猜)并使用jquery lib添加我的新组件,我需要反应的绑定,因为当我点击图像,信息和其他细节出现了,所以我真的需要反应的力量,但我需要找到一种方法来集成两个库,谢谢!! ...
刚才该网站似乎已经关闭了我希望很快就会修好suprb.com/apps/gridalicious/非常感谢!!! ...
答案 0 :(得分:2)
这些交互必须在React之外处理。当我必须做这些事情时,我使用生命周期方法componentDidMount
和componentDidUpdate
来使用jQuery操作DOM。
答案 1 :(得分:0)
不要在componentDidMount中的虚拟DOM之外附加gridalicious,而是可以在React Component中包含gridalicious,如此jQuery UI interop example中所示。