Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何将lightGallery与React.js一起使用_Jquery_Reactjs_Lightgallery - Fatal编程技术网

Jquery 如何将lightGallery与React.js一起使用

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'

我正在努力融入我自己的项目中。但我不能在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'
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