diff --git a/components/table/Table.tsx b/components/table/Table.tsx index f66381f90c2c..1b323940c49b 100755 --- a/components/table/Table.tsx +++ b/components/table/Table.tsx @@ -807,7 +807,7 @@ class Table extends React.Component, TableState> { current: this.state.pagination.current, }; } - this.setState(newState, () => this.scrollToFirstRow()); + this.setState(newState, this.scrollToFirstRow); this.props.store.setState({ selectionDirty: false, @@ -834,7 +834,7 @@ class Table extends React.Component, TableState> { pageSize, current, }; - this.setState({ pagination: nextPagination }); + this.setState({ pagination: nextPagination }, this.scrollToFirstRow); const { onChange } = this.props; if (onChange) { @@ -878,7 +878,7 @@ class Table extends React.Component, TableState> { // Controlled if (this.getSortOrderColumns().length === 0) { - this.setState(newState, () => this.scrollToFirstRow()); + this.setState(newState, this.scrollToFirstRow); } const { onChange } = this.props; diff --git a/components/table/__tests__/Table.pagination.test.js b/components/table/__tests__/Table.pagination.test.js index a44d0068c76c..6a0c3b6420c0 100644 --- a/components/table/__tests__/Table.pagination.test.js +++ b/components/table/__tests__/Table.pagination.test.js @@ -79,14 +79,32 @@ describe('Table.pagination', () => { expect(wrapper.find('.ant-pagination.mini')).toHaveLength(1); }); - // TODO it('should scroll to first row when page change', () => { - const wrapper = mount(createTable({ scroll: { y: 20 } })); + const wrapper = mount( + createTable({ scroll: { y: 20 }, pagination: { showSizeChanger: true, pageSize: 2 } }), + ); + const scrollToSpy = jest.spyOn( + wrapper + .find('Table') + .first() + .instance(), + 'scrollToFirstRow', + ); + expect(scrollToSpy).toHaveBeenCalledTimes(0); wrapper .find('Pager') .last() .simulate('click'); + expect(scrollToSpy).toHaveBeenCalledTimes(1); + + wrapper.find('.ant-select').simulate('click'); + wrapper + .find('MenuItem') + .find('li') + .last() + .simulate('click'); + expect(scrollToSpy).toHaveBeenCalledTimes(2); }); it('fires change event', () => {