While Pierrat’s answer did initially solve it for me, I was encountering a bug where the navigation buttons wouldn’t do anything until after I’d paused and restarted the Swiper.
To fix, I created my own functions for handling the updates and used those instead.
const MyComponent = () => {
const sliderRef = useRef(null);
const handlePrev = useCallback(() => {
if (!sliderRef.current) return;
sliderRef.current.swiper.slidePrev();
}, []);
const handleNext = useCallback(() => {
if (!sliderRef.current) return;
sliderRef.current.swiper.slideNext();
}, []);
return (
<div>
<Swiper ref={sliderRef}>
<SwiperSlide />
...slides
<SwiperSlide />
</Swiper>
<div className="prev-arrow" onClick={handlePrev} />
<div className="next-arrow" onClick={handleNext} />
</div>
)
}