슬라이더 구현에 react-id-swiper 라이브러리를 사용하게 되었다.

자동재생을 멈추고 다시 재생시키는 컨트롤 기능을 구현해야하는데 문서를 찾아봐도 react에서 인스턴스 생성하는게 없었고, useRef를 이용해도 계속해서 null값만 들어왔다.

그러던 중, github에서 해답을 찾았다.

(출처 : https://github.com/kidjp85/react-id-swiper/issues/20)

나도 해당코드를 사용해서 메소드로 자동재생을 컨트롤 할 수 있었다.

사용예시

 const [swiper, setSwiper] = useState(null);
 // swiper instance
  const [play, setPlay] = useState(true); // auto play 기준

  useEffect(() => {
    const swiperInstance = document.querySelector('.swiper-container').swiper;

    setSwiper(swiperInstance );
  }, []);

  useEffect(() => {
    if (typeof swiper === 'object') {
      if (play) {
        swiper.autoplay.start();
      } else {
        swiper.autoplay.stop();
      }
    }
  }, [swiper, play]);

  const onClickAutoPlayBtn = () => {
    setPlay(!play);
  };

Leave a comment

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다