如何在使用 setInterval() 方法更改组件背景的同时在 React 中添加过渡

问题描述

我为一家医院创建了一个登陆页面,我制作了一个标题标签,并使用 setInterval 方法通过 useEffect 钩子每 6 秒更改一次背景图像。如何动画背景图像的过渡?

import Image from 'next/image'
import { useEffect,useState } from 'react'



export default function LandingPage() {
let i = 0;
const [imagepath,setimagePath] = useState("url('/slides/slide3.jpg')")
const slides = [
  "url('/slides/slide1.jpg')","url('/slides/slide2.jpg')","url('/slides/slide3.jpg')"
]

const changeImage = () =>{
  setimagePath(slides[i]);
  console.log(i)
  i++;
  if (i > 2 ) i = 0 ;
  }

useEffect(() => {
  const interval = setInterval(() => {
    changeImage();
  },6000);
  return () => clearInterval(interval);
},[]);

return (
<header style={{backgroundImage :`linear-gradient(rgba(0,0.7),rgba(0,0.7)),${imagepath}`,transition : 'backgroundImage ease-in 500ms'}}>
        <nav className={styles.row}>
          <div className={styles.logo}>
            <Image  
                  src='/logoGH.jpg' 
                  alt="GH logo" 
                  width='80'
                  height='80'
                  /> 
          </div>
          <ul className={styles.main_nav}>
            <li><a>Home</a></li>
            <li><a>About Us</a></li>
            <li><a>Departments</a></li>
            <li><a>Our Doctors</a></li>
            <li><a>Corporates and TPA</a></li>
            <li><a>Contact Us</a></li>
        </ul>
      </nav>
      </header>
)}```

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)