Skip to content

Commit 0425268

Browse files
committed
Fix current change when pageSize Change
1 parent 331e8ec commit 0425268

File tree

3 files changed

+21
-13
lines changed

3 files changed

+21
-13
lines changed

examples/sizer.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ const Hello = React.createClass({
1111
return {pageSize: 20};
1212
},
1313
onShowSizeChange(current, pageSize) {
14+
console.log(current);
1415
this.setState({
1516
pageSize: pageSize,
1617
});

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "rc-pagination",
3-
"version": "1.5.1",
3+
"version": "1.5.2",
44
"description": "pagination ui component for react",
55
"keywords": [
66
"react",

src/Pagination.jsx

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -53,13 +53,21 @@ class Pagination extends React.Component {
5353
if ('current' in nextProps) {
5454
this.setState({
5555
current: nextProps.current,
56+
_current: nextProps.current,
5657
});
5758
}
5859

5960
if ('pageSize' in nextProps) {
60-
this.setState({
61-
pageSize: nextProps.pageSize,
62-
});
61+
const newState = {};
62+
let current = this.state.current;
63+
const newCurrent = this._calcPage(nextProps.pageSize);
64+
current = current > newCurrent ? newCurrent : current;
65+
if (!('current' in nextProps)) {
66+
newState.current = current;
67+
newState._current = current;
68+
}
69+
newState.pageSize = nextProps.pageSize;
70+
this.setState(newState);
6371
}
6472
}
6573

@@ -110,20 +118,19 @@ class Pagination extends React.Component {
110118

111119
_changePageSize(size) {
112120
let current = this.state.current;
113-
121+
const newCurrent = this._calcPage(size);
122+
current = current > newCurrent ? newCurrent : current;
114123
if (typeof size === 'number') {
115124
if (!('pageSize' in this.props)) {
116125
this.setState({
117126
pageSize: size,
118127
});
119-
120-
if (this.state.current > this._calcPage(size)) {
121-
current = this._calcPage(size);
122-
this.setState({
123-
current: current,
124-
_current: current,
125-
});
126-
}
128+
}
129+
if (!('current' in this.props)) {
130+
this.setState({
131+
current: current,
132+
_current: current,
133+
});
127134
}
128135
}
129136
this.props.onShowSizeChange(current, size);

0 commit comments

Comments
 (0)