Jquery 如何将lightGallery与React.js一起使用
我正在努力融入我自己的项目中。但我不能在React控制器中使用它 我的行动: 1) 使用npm安装Jquery 如何将lightGallery与React.js一起使用,jquery,reactjs,lightgallery,Jquery,Reactjs,Lightgallery,我正在努力融入我自己的项目中。但我不能在React控制器中使用它 我的行动: 1) 使用npm安装 npm install lightgallery lg-thumbnail lg-autoplay lg-video lg-fullscreen lg-pager lg-zoom lg-hash lg-share --save-dev 2) 将插件导入控制器: import React, {Component} from 'react' import HomeDom from './Home'
npm install lightgallery lg-thumbnail lg-autoplay lg-video lg-fullscreen lg-pager lg-zoom lg-hash lg-share --save-dev
2) 将插件导入控制器:
import React, {Component} from 'react'
import HomeDom from './Home'
import $ from 'jquery'
import 'lightgallery';
export default class HomeClass extends Component {
render() {
$('#lightgallery').lightGallery();
return (
<HomeDom />
)
}
}
我对这种配置一无所获。谁来解决这个问题?或者有一个更友好的图库插件,比如lightgallery,它的功能(全屏、缩放、移动设备友好等…。调用jQuery初始值设定项时,组件尚未呈现,因此您尝试选择的DOM元素不存在。要等待lightgallery容器渲染并初始化它,请执行以下操作:
import React,{Component}来自“React”
从“./Home”导入HomeDom
从“jquery”导入$
进口"lightgallery";;
导出默认类Home extends组件{
onLightGallery=节点=>{
this.lightGallery=节点;
$(node.lightGallery();
}
组件将卸载(){
$(this.lightGallery).data('lightGallery').destroy(true);
}
render(){
返回(
)
}
}
还请注意,当您的组件卸载以删除不需要的事件处理程序时,您应该销毁lightgallery。调用jQuery初始值设定项时,组件尚未呈现,因此您尝试选择的DOM元素不存在。要等待lightgallery容器渲染并初始化它,请执行以下操作:
import React,{Component}来自“React”
从“./Home”导入HomeDom
从“jquery”导入$
进口"lightgallery";;
导出默认类Home extends组件{
onLightGallery=节点=>{
this.lightGallery=节点;
$(node.lightGallery();
}
组件将卸载(){
$(this.lightGallery).data('lightGallery').destroy(true);
}
render(){
返回(
)
}
}
还请注意,当您的组件卸载以删除不需要的事件处理程序时,您应该销毁lightgallery。不要忘记将
包含到模板html页面中。没有这个css文件插件就无法工作。别忘了将
包含到模板html页面中。没有这个css文件插件就无法工作。@Halkyon很高兴我能帮上忙。我看到对jQuery初始值设定项的调用仍在render方法中。那只是一个复制粘贴错误。你不再需要它了。嘿@trixn,你能检查一下这个问题吗?与此类似,但没有使用jquery@哈尔金很高兴我能帮上忙。我看到对jQuery初始值设定项的调用仍在render方法中。那只是一个复制粘贴错误。你不再需要它了。嘿@trixn,你能检查一下这个问题吗?与此类似,但没有使用jquery。
import React from 'react'
const HomeDom = () => (
<div className="home-main-wrapper">
<div className="catalog-body">
<div id="lightgallery">
<a href="src">
<img alt="thumbnail" />
</a>
<a href="src">
<img alt="thumbnail" />
</a>
</div>
</div>
</div>
);
export default HomeDom