ReactNative:在setInterval/useEffect内改变状态不工作?



我想做一个类似于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

相关内容

  • 没有找到相关文章

最新更新