From fae2e9c4ae99dd1af88d8bbfacb5413611e4231a Mon Sep 17 00:00:00 2001 From: callmeyan Date: Tue, 7 Jan 2025 10:27:16 +0800 Subject: [PATCH] =?UTF-8?q?fixed:=20=E9=A1=B5=E9=9D=A2=E9=94=80=E6=AF=81?= =?UTF-8?q?=E5=90=8E=E6=B2=A1=E6=9C=89=E5=81=9C=E6=AD=A2refresh?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/video/index.tsx | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/pages/video/index.tsx b/src/pages/video/index.tsx index 4e4cc63..14e915a 100644 --- a/src/pages/video/index.tsx +++ b/src/pages/video/index.tsx @@ -2,7 +2,7 @@ import {Checkbox, Empty, Space} from "antd"; import React, {useEffect, useMemo, useRef, useState} from "react"; import {DndContext} from "@dnd-kit/core"; import {arrayMove, SortableContext} from "@dnd-kit/sortable"; -import {useSetState} from "ahooks"; +import {useSetState, useTimeout} from "ahooks"; import {VideoListItem} from "@/components/video/video-list-item.tsx"; import ArticleEditModal from "@/components/article/edit-modal.tsx"; @@ -35,9 +35,15 @@ export default function VideoIndex() { loading:false }) const [checkedIdArray, setCheckedIdArray] = useState([]) + const [refreshTimer,setTimer] = useState(0) // 加载列表 const loadList = (needReset = true) => { + if(state.loading) return; + if(refreshTimer) { + clearTimeout(refreshTimer) + setTimer(0) + } setState({loading: true}) getList().then((ret) => { const list = ret.list || [] @@ -49,12 +55,19 @@ export default function VideoIndex() { // 判断是否有生成中的视频 if (list.filter(s => s.status == VideoStatus.Generating).length > 0) { // 每5s重新获取一次最新数据 - setTimeout(() => loadList(false), 5000) + setTimer(()=>setTimeout(() => loadList(false), 5000) as number); } }).catch(showErrorToast) .finally(()=>{ setState({loading: false}) }) + return ()=>{ + if(refreshTimer){ + + clearTimeout(refreshTimer) + } + console.log('go out',refreshTimer) + } } // 播放视频