diff --git a/src/packages/uploader/uploader.taro.tsx b/src/packages/uploader/uploader.taro.tsx index 4706d052da..36630813c3 100644 --- a/src/packages/uploader/uploader.taro.tsx +++ b/src/packages/uploader/uploader.taro.tsx @@ -387,6 +387,7 @@ const InternalUploader: ForwardRefRenderFunction< } const readFile = (files: T[]) => { + const results: FileItem[] = [] files.forEach((file: T, index: number) => { let fileType = file.type const filepath = (file.tempFilePath || file.path) as string @@ -428,8 +429,9 @@ const InternalUploader: ForwardRefRenderFunction< fileItem.url = fileType === 'video' ? file.thumbTempFilePath : filepath } executeUpload(fileItem, index) - setFileList([...fileList, fileItem]) + results.push(fileItem) }) + setFileList([...fileList, ...results]) } const filterFiles = (files: T[]) => { diff --git a/src/packages/uploader/uploader.tsx b/src/packages/uploader/uploader.tsx index 6f008eb460..87630d7ec7 100644 --- a/src/packages/uploader/uploader.tsx +++ b/src/packages/uploader/uploader.tsx @@ -288,6 +288,7 @@ const InternalUploader: ForwardRefRenderFunction< } const readFile = (files: File[]) => { + const results: FileItem[] = [] files.forEach((file: File, index: number) => { const formData = new FormData() formData.append(name, file) @@ -306,13 +307,15 @@ const InternalUploader: ForwardRefRenderFunction< const reader = new FileReader() reader.onload = (event: ProgressEvent) => { fileItem.url = (event.target as FileReader).result as string - setFileList([...fileList, fileItem]) + // setFileList([...fileList, fileItem]) + results.push(fileItem) } reader.readAsDataURL(file) } else { - setFileList([...fileList, fileItem]) + results.push(fileItem) } }) + setFileList([...fileList, ...results]) } const filterFiles = (files: File[]) => {