setInterval을 통해 캐러셀을 계속 움직이게 하려니까 오류가 생기더라구요
그래서 구글링해서 useInterval함수를 만들어서 사용하라고 해서 코드를 고쳤습니다.
useInterval함수는
function useInterval(callback, delay) {
const savedCallback = useRef(null);
useEffect(() => {
savedCallback.current = callback;
}, [callback]);
useEffect(() => {
const executeCallback = () => {
savedCallback.current();
};
const timerId = setInterval(executeCallback, delay);
return () => clearInterval(timerId);
}, []);
};
이렇게 만들었고
useEffect(()=>{
useInterval(()=> {
if(mainCarouselImgNum != 3)
setMainCarouselImgNum(mainCarouselImgNum+1);
else
setMainCarouselImgNum(1);
},4000);
},[])
처음 들어왔을 때만 실행되도록 useEffect를 사용했습니다. 그런데 오류메세지로 useInterval에 콜백함수를 넣으라고 오류 메세지가 계속 생깁니다.
useEffect없이 useInterval만 적으면 작동이 매우 잘 되는데 useEffect에 넣으면 작동이 되지 않습니다.
어떻게 해야 하나요?