私は反応スリック+反応イメージライトボックスを使用することができますと思います。ローカル状態は、現在のイメージのパスを保存するのに適しています。
import Slider from 'react-slick';
import Lightbox from 'react-image-lightbox';
class Slider extends React.Component{
constructor(props){
super(props);
this.state = {
images: ['src/image1.png', 'src/image2.png', 'src/image3.png'],
current: ''
}
}
getSliderSettings(){
return {
dots: true,
infinite: true,
speed: 500,
slidesToShow: 1,
slidesToScroll: 1
}
}
handleClickImage = (e, image) => {
e && e.preventDefault();
this.setState({
current: image
})
}
handleCloseModal = (e) => {
e && e.preventDefault();
this.setState({
current: ''
})
}
render(){
const settings = this.getSliderSettings();
const {images, current} = this.state;
return (
<div>
<Slider {...settings}>
{ images.map((image, index) => (
<img src="image" onClick={ e => this.handleClickImage(e, image)} />
))}
</Slider>
{current &&
<Lightbox
mainSrc={current}
onCloseRequest={this.handleCloseModal}
/>
}
</div>
)
}
}
クリック反応のデモページを確認して、指でスワイプすることができます。 「タッチ対応ライトボックス」の略語を教えてください。 – Vlad
ええ、反応滑りスライダーはタッチ対応です。これはすばらしいです(クリック反応は何か...)。ライトボックスとは、画像をタップしてフルスクリーンの画像スライダを開くことを意味します。私が意味するものの例については、halkaBoxとSimpleLightboxのリンクを参照してください。 – ooloth