当前位置: 首页 > 知识库问答 >
问题:

如何才能在react.js中有一个每5秒更改一次的映像?

郜俊健
2023-03-14
import React, { useEffect, useState } from "react";

import aa from '../imgs/aa.png'
import aa2 from '../imgs/aa2.JPG'
import aa3 from '../imgs/aa3.JPG'
import aa4 from '../imgs/aa4.JPG'



import './AnimatedGalery.css'



export default function () {

    return (
        <div>
        </div>
    )
}

我不知道怎么开始。我基本上想要一个图像(我可以调整大小并赋予css属性),每5秒改变一次,变成我这里有的4个导入图像中的另一个。

共有1个答案

邓鸿彩
2023-03-14

想法:把所有导入的图像放在一个列表中。为应该显示的当前图像提供一个状态变量。在使用随机选取的图像设置新状态的useEffect中,设置每5秒执行一次的intervall。

const images = [aa, aa2, aa3, aa4];

export default function ImageSwapper() {
    const [currentImage, setCurrentImage] = useState(null);

    useEffect(() => {
        const intervalId = setInterval(() => {
            setCurrentImage(images[Math.floor(Math.random() * items.length)]);
        }, 5000)
        
        return () => clearInterval(intervalId);
    }, [])

    return (
        <div>
            <img src={currentImage} />
        </div>
    )
}

如果您想要对图像进行旋转,那么我只需要保存currentIndex并显示它的图像:

const images = [aa, aa2, aa3, aa4];

export default function ImageSwapper() {
    const [currentIndex, setCurrentIndex] = useState(0);

    useEffect(() => {
        const intervalId = setInterval(() => {
            if(currentIndex === images.length - 1) {
                setCurrentIndex(0);
            } 
            else {
                 setCurrentIndex(currentIndex + 1);
            }
        }, 5000)
        
        return () => clearInterval(intervalId);
    }, [])

    return (
        <div>
            <img src={images[currentIndex]} />
        </div>
    )
}
 类似资料:
  • 问题内容: 我正在将一种布局转换为html; 一旦我在code / html / css中进行了更改,每次必须按F5。是否有任何简单的javascript / jQuery解决方案?即,在添加脚本之后,每5秒(或其他特定时间)重新加载整个页面。 问题答案: 如果必须在脚本中使用setTimeout,例如:

  • 我想知道什么是电池效率最高的方式发送准确的位置更新到服务器/防火墙每5秒,即使应用程序关闭或手机重新启动。我尝试使用alarmmanager.setrepeating和android.intent.action.boot_completed接收器- 使用post一个延迟消息或runnable到一个处理程序不是一个可靠的解决方案,因为一旦应用程序被删除,位置更新就会停止。 是否有可靠的方法每5秒向服

  • 问题内容: 我从修改了自己需求的网站上获得了此代码: 在test.php中: 所以我想在链接div中每5秒调用一次test.php。我该怎么做呢? 问题答案: 试试看 希望这可以帮助。

  • 问题内容: 我正在尝试在应用程序GUI中模拟基本恒温器。 我想每2秒用新的温度值更新一个标签盒值。 例如,我的初始温度将显示为68度,并每2秒更新为69、70等,直到75。 这是我用Java fx编写的一段代码。 是带有标签框的te形式的对象。它只会将最终值更新为75。它不会每2秒更新一次。我写了一个方法暂停,导致2秒钟的延迟。所有标签均会更新为最终值,但不会每2秒更新一次。调试时,我可以看到这些

  • 现在我生成了一组幻灯片,当我以pps形式打开它时,它不会在幻灯片之间转换,除非我在微软的powerpoint编辑器中打开它(我可以在其中添加转换)并保存它。然后它可以正常转换。 我认为这与幻灯片母版有关:https://poi.apache.org/apidocs/org/apache/poi/xslf/usermodel/XSLFSlideMaster.html但我不确定它是如何使用的,因为它说

  • 问题内容: 我想知道如何每x秒重绘和更新JPanel的背景…这是我的代码: 我的代码有2个问题:1-JPanel根本没有被绘制。2-第一张可以打印,然后每次打印数量增加一倍。有什么建议吗?先感谢您 更新:我以这种方式解决了这个问题: 更新2: 问题答案: 使用Swing计时器,