我想做一个类似于tinder的克隆,我想每5秒显示一个不同的用户照片,我首先从匹配中获得只有图像的数组,然后使用setInterval,我终于得到了工作内部效果,我循环通过图像数组并改变图像的活动索引,但是当我控制台日志活动图像时,它总是相同的图像…
这总是返回相同的活动索引和相同的活动图像
console.log(images[activeImageIndex]);
useEffect(() => {
getImagesArray(mapStore.blurredMatches);
const interval = setInterval(() => {
if(images.length>0)
{
flipAndNextImage();
}
}, 5000);
return () => clearInterval(interval);
}, []);
const getImagesArray = (users) =>
{
let copy = [];
for(var i=0;i<users.length;i++)
{
copy.push(users[i].images[0]);
}
setImages(copy);
console.log('Setting images array',images);
};
const flipAndNextImage= () =>
{
console.log(images,'images');
if(activeImageIndex == images.length-1)
{
setActiveImageIndex(0);
console.log(images[activeImageIndex]);
}
else
{
setActiveImageIndex(activeImageIndex+1);
console.log(images[activeImageIndex]);
}
};
我相信这是因为您在记录状态之前更新了activeImageIndex