From 43fa4c8a91aabde87502206bddfbdc5297fe4a06 Mon Sep 17 00:00:00 2001 From: Heising Date: Wed, 15 May 2024 11:51:47 +0800 Subject: [PATCH] fix(Upload): fix manual uploadFilePercent not update display --- src/upload/hooks/useUpload.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/upload/hooks/useUpload.ts b/src/upload/hooks/useUpload.ts index 5ac22f263..f5e842e61 100644 --- a/src/upload/hooks/useUpload.ts +++ b/src/upload/hooks/useUpload.ts @@ -28,6 +28,7 @@ export default function useUpload(props: TdUploadProps) { const xhrReq = useRef<{ files: UploadFile[]; xhrReq: XMLHttpRequest }[]>([]); const [toUploadFiles, setToUploadFiles] = useState([]); const [sizeOverLimitMessage, setSizeOverLimitMessage] = useState(''); + const [update, forceUpdate] = useState({}); const locale = useMemo(() => merge({}, globalLocale, props.locale), [globalLocale, props.locale]); @@ -59,7 +60,7 @@ export default function useUpload(props: TdUploadProps) { isBatchUpload, }); setDisplayFiles(files); - }, [props.multiple, toUploadFiles, uploadValue, autoUpload, isBatchUpload]); + }, [props.multiple, toUploadFiles, uploadValue, autoUpload, isBatchUpload, update]); const uploadFilePercent = (params: { file: UploadFile; percent: number }) => { const { file, percent } = params; @@ -71,6 +72,11 @@ export default function useUpload(props: TdUploadProps) { } else { const index = uploadValue.findIndex((item) => file.raw === item.raw); uploadValue[index] = { ...uploadValue[index], percent }; + /** + * 使用强制更新,修复手动自定义上传的percent无效 + * https://github.com/Tencent/tdesign-react/issues/2893 + */ + forceUpdate({}); } };