@@ -53,13 +53,21 @@ class Pagination extends React.Component {
53
53
if ( 'current' in nextProps ) {
54
54
this . setState ( {
55
55
current : nextProps . current ,
56
+ _current : nextProps . current ,
56
57
} ) ;
57
58
}
58
59
59
60
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 ) ;
63
71
}
64
72
}
65
73
@@ -110,20 +118,19 @@ class Pagination extends React.Component {
110
118
111
119
_changePageSize ( size ) {
112
120
let current = this . state . current ;
113
-
121
+ const newCurrent = this . _calcPage ( size ) ;
122
+ current = current > newCurrent ? newCurrent : current ;
114
123
if ( typeof size === 'number' ) {
115
124
if ( ! ( 'pageSize' in this . props ) ) {
116
125
this . setState ( {
117
126
pageSize : size ,
118
127
} ) ;
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
+ } ) ;
127
134
}
128
135
}
129
136
this . props . onShowSizeChange ( current , size ) ;
0 commit comments