我确信我只是有点愚蠢,但我一生都想不明白这一点.我正在使用SWR从api路径获取一些数据(id、标题、幻灯片等),进展顺利.我计划获取我的数据.幻灯片并创建一个简单的动画幻灯片,只需每5秒前进到下一张幻灯片即可.我以为我可以使用useEffect和setInterval来处理幻灯片,但最终(23之后),我点击了"太多重新渲染".
const { slideshow, isError, isLoading } = useSlideshow();
const [currentSlide, setCurrentSlide] = useState(0);
useEffect(() => {
const interval = setInterval(() => {
setCurrentSlide((prevSlide) => (prevSlide + 1) % (slides?.length ?? 0));
console.log("currentSlide", currentSlide);
}, 500);
return () => clearInterval(interval);
}, [slides.length, currentSlide]);
我确信我错过了什么,但我很困惑.如何防止在继续浏览幻灯片的同时过度重新渲染?