如何在 React 中显示图像滑块
how to show image slider in React
我将此插件 https://github.com/akiran/react-slick 用于图像滑块,但由于某些原因我无法实现我想要的效果。
这是一个示例代码:
import React, { Component } from "react";
import Slider from "../src/slider";
import { baseUrl } from "./config";
export default class CenterMode extends Component {
render() {
const settings = {
customPaging: function(i) {
return (
<a>
<img src={`${baseUrl}/abstract0${i + 1}.jpg`} />
</a>
);
},
dots: true,
dotsClass: "slick-dots slick-thumb",
infinite: true,
speed: 500,
slidesToShow: 1,
slidesToScroll: 1
};
return (
<div>
<h2>Custom Paging</h2>
<Slider {...settings}>
<div>
<img src={baseUrl + "/abstract01.jpg"} />
</div>
<div>
<img src={baseUrl + "/abstract02.jpg"} />
</div>
<div>
<img src={baseUrl + "/abstract03.jpg"} />
</div>
<div>
<img src={baseUrl + "/abstract04.jpg"} />
</div>
</Slider>
</div>
);
}
}
除非图像文件名类似于 abstract01、abstract02,否则这工作得很好,在我的例子中,图像文件名是随机的,它可以是任何东西,因此缩略图部分对我不起作用。是否有任何选项可以让我在 customPaging 上传递一些其他参数,以便我可以接收 src attr 并从那里获取文件名。
如有任何想法,我们将不胜感激。
注意:我的案例中的图像来自amazon s3,所以我根本无法控制它们!
我相信你可以做这样的事情:
const images = [
{ src: baseUrl + "/abstract01.jpg" },
{ src: baseUrl + "/abstract02.jpg" },
{ src: baseUrl + "/abstract03.jpg" },
{ src: baseUrl + "/abstract04.jpg" },
];
export default class App extends Component {
render() {
const settings = {
customPaging: function (i) {
return (
<a>
<img src={images[i].src} />
</a>
);
},
dots: true,
dotsClass: "slick-dots slick-thumb",
infinite: true,
speed: 500,
slidesToShow: 1,
slidesToScroll: 1
};
return (
<div>
<h2>Custom Paging</h2>
<Slider {...settings}>
{images.map((img) => (
<div>
<img src={img.src} />
</div>
))}
</Slider>
</div>
);
}
}
基本上您可以创建图像数组(因为您已经知道这些图像),然后通过它进行映射以获取幻灯片,并在自定义分页中使用迭代器从您的数组中按索引获取图像。
我将此插件 https://github.com/akiran/react-slick 用于图像滑块,但由于某些原因我无法实现我想要的效果。
这是一个示例代码:
import React, { Component } from "react";
import Slider from "../src/slider";
import { baseUrl } from "./config";
export default class CenterMode extends Component {
render() {
const settings = {
customPaging: function(i) {
return (
<a>
<img src={`${baseUrl}/abstract0${i + 1}.jpg`} />
</a>
);
},
dots: true,
dotsClass: "slick-dots slick-thumb",
infinite: true,
speed: 500,
slidesToShow: 1,
slidesToScroll: 1
};
return (
<div>
<h2>Custom Paging</h2>
<Slider {...settings}>
<div>
<img src={baseUrl + "/abstract01.jpg"} />
</div>
<div>
<img src={baseUrl + "/abstract02.jpg"} />
</div>
<div>
<img src={baseUrl + "/abstract03.jpg"} />
</div>
<div>
<img src={baseUrl + "/abstract04.jpg"} />
</div>
</Slider>
</div>
);
}
}
除非图像文件名类似于 abstract01、abstract02,否则这工作得很好,在我的例子中,图像文件名是随机的,它可以是任何东西,因此缩略图部分对我不起作用。是否有任何选项可以让我在 customPaging 上传递一些其他参数,以便我可以接收 src attr 并从那里获取文件名。
如有任何想法,我们将不胜感激。 注意:我的案例中的图像来自amazon s3,所以我根本无法控制它们!
我相信你可以做这样的事情:
const images = [
{ src: baseUrl + "/abstract01.jpg" },
{ src: baseUrl + "/abstract02.jpg" },
{ src: baseUrl + "/abstract03.jpg" },
{ src: baseUrl + "/abstract04.jpg" },
];
export default class App extends Component {
render() {
const settings = {
customPaging: function (i) {
return (
<a>
<img src={images[i].src} />
</a>
);
},
dots: true,
dotsClass: "slick-dots slick-thumb",
infinite: true,
speed: 500,
slidesToShow: 1,
slidesToScroll: 1
};
return (
<div>
<h2>Custom Paging</h2>
<Slider {...settings}>
{images.map((img) => (
<div>
<img src={img.src} />
</div>
))}
</Slider>
</div>
);
}
}
基本上您可以创建图像数组(因为您已经知道这些图像),然后通过它进行映射以获取幻灯片,并在自定义分页中使用迭代器从您的数组中按索引获取图像。