首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何将当前索引传递给react-image-lightbox?

react-image-lightbox 是一个基于 React 的图片轮播组件,用于在网页上展示一系列图片。当用户点击其中一张图片时,可以弹出一个灯箱样式的轮播图,用户可以通过左右箭头或者键盘来切换图片。

要将当前索引传递给 react-image-lightbox,需要使用该组件的 props 中的 currentImageIndex 属性。该属性用于指定当前显示的图片索引,通过改变该属性的值,可以在组件内部切换到指定的图片。

以下是一个示例代码,展示了如何使用 react-image-lightbox 并传递当前索引:

代码语言:txt
复制
import React, { useState } from 'react';
import Lightbox from 'react-image-lightbox';

const Gallery = () => {
  const images = [
    'image1.jpg',
    'image2.jpg',
    'image3.jpg'
  ];

  const [isOpen, setIsOpen] = useState(false);
  const [currentImageIndex, setCurrentImageIndex] = useState(0);

  const openLightbox = (index) => {
    setIsOpen(true);
    setCurrentImageIndex(index);
  };

  const closeLightbox = () => {
    setIsOpen(false);
  };

  const goToPrevious = () => {
    setCurrentImageIndex((currentImageIndex + images.length - 1) % images.length);
  };

  const goToNext = () => {
    setCurrentImageIndex((currentImageIndex + 1) % images.length);
  };

  return (
    <div>
      {images.map((image, index) => (
        <img
          key={index}
          src={image}
          alt={`Image ${index + 1}`}
          onClick={() => openLightbox(index)}
        />
      ))}

      {isOpen && (
        <Lightbox
          mainSrc={images[currentImageIndex]}
          nextSrc={images[(currentImageIndex + 1) % images.length]}
          prevSrc={images[(currentImageIndex + images.length - 1) % images.length]}
          onCloseRequest={closeLightbox}
          onMovePrevRequest={goToPrevious}
          onMoveNextRequest={goToNext}
          reactModalProps={{
            overlayClassName: 'your-custom-overlay',
            className: 'your-custom-lightbox'
          }}
        />
      )}
    </div>
  );
};

export default Gallery;

在这个示例代码中,我们通过创建一个 Gallery 组件来展示图片。点击图片时,会调用 openLightbox 函数打开灯箱,并传递当前图片的索引作为参数。灯箱组件会根据当前索引显示对应的图片。

注意,这里的示例中使用的是第三方的 react-image-lightbox 组件,如果需要了解更多关于该组件的详细信息,可以访问腾讯云相关产品链接:react-image-lightbox

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的沙龙

领券