// 用于记录轮播图的以后激活序号  const [activeId, setActiveId] = useState(0);// 用于管制轮播图的位移const [position, setPosition] = useState(0);// 用于管制自动播放const [autoPlayFlag, setAutoPlayFlag] = useState(true);let timer = useRef()const runTimer = () => {    timer.current = setInterval(() => {        // 这时候的num因为闭包的起因,始终是0,所以这里不能间接用setActiveId(activeId-1)        setActiveId(n => {            if (n > 3) {                return 0            } else {                return n+1            }        })    },5000)}useEffect(() => {    runTimer()    return () => {        // 组件销毁时,革除定时器        if (timer.current)        clearInterval(timer.current)    }},[autoPlayFlag])const handleClick = (idx:number) => {    clearInterval(timer.current)    setActiveId(idx)}useEffect(() => {    if (!timer.current) {        runTimer()    }    setPosition(721 * activeId)},[activeId])const slides = suitableList.map((slideContent:any, i) =>    <div        key={`customize_suit_${slideContent.id}_${i}`}        className={sty.swiperImgBox}>        <div className={sty.swiperImg}             style={{background:                     `url(${slideContent.url}) no-repeat center / cover`}}>        </div>    </div>);// 款式不贴了,父级宽度100%,inner宽度3605px(721乘以5)return <div className={sty.suitableCntBoxRight}>                <div className={sty.suitableCntBoxRightInner} style={{left: `-${position}px`}}>                    {slides}                </div>            </div>