Don't know why interval keeps on decreasing.
import React, { useState } from 'react';
import styled from 'styled-components';
import p1 from '../images/slider-badag.jpg';
import p2 from '../images/slider-badging.jpg';
import p3 from '../images/slider-scale.jpg';
import p4 from '../images/slider-scales.jpg';
const ImgSlider = () => {
const imgArr = [p1, p2, p3, p4];
const [index, setIndex] = useState(0);
setInterval(() => {
if (index < imgArr.length-1) {
setIndex(index + 1);
}
else setIndex(0);
}, 3000);
return (
<>
<Wrapper imgUrl={imgArr[index]}>
{console.log(index)}
</Wrapper>
</>
);
}
const Wrapper = styled.div`
border: 1px solid red;
height: calc(160%/3);
background-image: url(${(props) => props.imgUrl});
z-index: 10;
overflow: hidden;
`
export default ImgSlider;
Here I am trying to make an image slider here. In every 3 seconds the image changes due to setInterval function. But after sometime the images start to change rapidly that is in less than 1 second interval only (in milliseconds!). Why is this happening? Please help me.