diff --git a/components/upload/Upload.tsx b/components/upload/Upload.tsx index aa9a375953ae..9eaa2b87cd69 100644 --- a/components/upload/Upload.tsx +++ b/components/upload/Upload.tsx @@ -137,6 +137,7 @@ const InternalUpload: React.ForwardRefRenderFunction = ( if ( !exceedMaxCount || + file.status === 'removed' || // We should ignore event if current file is exceed `maxCount` cloneList.some((f) => f.uid === file.uid) ) { diff --git a/components/upload/__tests__/upload.test.tsx b/components/upload/__tests__/upload.test.tsx index 6e1d790dd568..9841b171ae6b 100644 --- a/components/upload/__tests__/upload.test.tsx +++ b/components/upload/__tests__/upload.test.tsx @@ -815,6 +815,53 @@ describe('Upload', () => { }), ); }); + + it('should trigger onChange when defaultFileList.length is longer than maxCount ', async () => { + const onChange = jest.fn(); + + const { container } = render( + + + , + ); + + fireEvent.click(container.querySelector('.ant-upload-list-item-action')!); + await waitFakeTimer(); + // Click delete + + expect(onChange).toHaveBeenCalledWith( + expect.objectContaining({ + // Have 3 file + fileList: [expect.anything(), expect.anything(), expect.anything()], + }), + ); + }); }); it('auto fill file uid', () => {