제 생각에는 반응 슬릭 + 반응 이미지 라이트 박스를 사용할 수 있습니다. 로컬 상태는 현재 이미지의 경로를 저장하기에 좋은 장소입니다.
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